本文整理汇总了C#中HttpResult.Complete方法的典型用法代码示例。如果您正苦于以下问题:C# HttpResult.Complete方法的具体用法?C# HttpResult.Complete怎么用?C# HttpResult.Complete使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HttpResult
的用法示例。
在下文中一共展示了HttpResult.Complete方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BeginReceive
public IAsyncResult BeginReceive(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
{
if (receiveResult != null)
throw new InvalidOperationException("Cannot call BeginReceive twice");
receiveResult = new HttpResult(callback, state, buffer, offset, count);
try
{
// BeginReceive has been called *before* we have sent a piece request.
// Wait for a piece request to be sent before allowing this to complete.
if (dataStream == null)
return receiveResult;
DoReceive();
return receiveResult;
}
catch (Exception ex)
{
if (sendResult != null)
sendResult.Complete(ex);
if (receiveResult != null)
receiveResult.Complete(ex);
}
return receiveResult;
}
示例2: BeginSend
public IAsyncResult BeginSend(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
{
if (sendResult != null)
throw new InvalidOperationException("Cannot call BeginSend twice");
sendResult = new HttpResult(callback, state, buffer, offset, count);
try
{
List<PeerMessage> bundle = DecodeMessages(buffer, offset, count);
if (bundle == null)
{
sendResult.Complete(count);
}
else if (bundle.TrueForAll(delegate(PeerMessage m) { return m is RequestMessage; }))
{
requestMessages.AddRange(bundle.ConvertAll<RequestMessage>(delegate(PeerMessage m) { return (RequestMessage)m; }));
// The RequestMessages are always sequential
RequestMessage start = (RequestMessage)bundle[0];
RequestMessage end = (RequestMessage)bundle[bundle.Count - 1];
CreateWebRequests(start, end);
KeyValuePair<WebRequest, int> r = webRequests.Dequeue();
totalExpected = r.Value;
BeginGetResponse(r.Key, getResponseCallback, r.Key);
}
else
{
sendResult.Complete(count);
}
}
catch (Exception ex)
{
sendResult.Complete(ex);
}
return sendResult;
}
示例3: BeginSend
public IAsyncResult BeginSend(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
{
if (_sendResult != null)
throw new InvalidOperationException("Cannot call BeginSend twice");
_sendResult = new HttpResult(callback, state, buffer, offset, count);
try
{
var bundle = DecodeMessages(buffer, offset, count);
if (bundle == null)
{
_sendResult.Complete(count);
}
else if (bundle.TrueForAll(m => m is RequestMessage))
{
_requestMessages.AddRange(bundle.Cast<RequestMessage>());
// The RequestMessages are always sequential
var start = (RequestMessage) bundle[0];
var end = (RequestMessage) bundle[bundle.Count - 1];
CreateWebRequests(start, end);
var r = _webRequests.Dequeue();
_totalExpected = r.Value;
BeginGetResponse(r.Key, _getResponseCallback, r.Key);
}
else
{
_sendResult.Complete(count);
}
}
catch (Exception ex)
{
_sendResult.Complete(ex);
}
return _sendResult;
}