添加引用時生成”勾選允許生成非同步操作” Wcf非同步調用三種方式: 第一種:直接調用非同步方法 var serviceClient = new MyServiceClient(); serviceClient.MessageAsync(); erviceClient.Close(); 第二種:Begin ...
添加引用時生成”勾選允許生成非同步操作”
Wcf非同步調用三種方式:
第一種:直接調用非同步方法
var serviceClient = new MyServiceClient();
serviceClient.MessageAsync();
erviceClient.Close();
第二種:Begin、End方式
serviceClient.BeginMessage(delegate(IAsyncResult asyncResult)
{
serviceClient.EndMessage(asyncResult);
serviceClient.Close();
}, null);
第三種:通過註冊事件的方式
serviceClient.MessageCompleted += delegate(object sender, PushBatchMessageCompletedEventArgs e)
{
if (serviceClient != null)
{
serviceClient.Close();
}
};
serviceClient.MessageAsync();
通過實驗,前2種方式在調用Close()方法時程式會停留等待伺服器端執行完成才能往下繼續執行,而第3種通過註冊事件的方案不需要等待。