BeginConnect和之间有什么区别ConnectAsync?随后,BeginDisconnect和之间有什么区别DisconnectAsync?
该ConnectAsync文件规定:
"开始远程主机连接的异步请求."
该BeginConnect文件还指出:
"开始远程主机连接的异步请求."
无论是DisconnectAsync和BeginDisconnect也说出了同样的事情:
"开始异步请求以断开与远程端点的连接."
这些方法对与应该使用哪种方法之间的区别是什么?
我最近注意到了以下模式,但我并没有完全掌握CompletedSynchronously属性的用法:
IAsyncResult channelOpenResult = channel.BeginOpen(new AsyncCallback(OnOpenCompleteChannel), channel);
if (channelOpenResult.CompletedSynchronously)
{
CompleteOpenChannel(channelOpenResult);
}
Run Code Online (Sandbox Code Playgroud)
然后,在回调中:
void OnOpenCompleteChannel(IAsyncResult result)
{
if (result.CompletedSynchronously)
return;
else
CompleteOpenChannel(result);
}
Run Code Online (Sandbox Code Playgroud)
代码中的某个地方当然有一个功能:
void CompleteOpenChannel(IAsyncResult result) ...
Run Code Online (Sandbox Code Playgroud)
这是一种处理异步调用的方式,具体取决于它是否直接完成?但是为什么在这种情况下使用它,因为始终会调用AsyncCallback(它会吗?)?有人可以给出一个同步调用的例子吗?
c# ×2
.net ×1
asynchronous ×1
connect ×1
disconnect ×1
silverlight ×1
sockets ×1
web-services ×1