WCF 异步调用问题

 

添加引用时生成勾选允许生成异步操作”

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种通过注册事件的方案不需要等待。

原文地址:https://www.cnblogs.com/qingyunoo/p/6061319.html