簡體   English   中英

異步WCF服務調用

[英]Asynchronous WCF service call

我正在使用EAP從WP頁面異步調用WCF服務:

ServiceReference1.Service1Client proxy = new ServiceReference1.Service1Client();
proxy.loginCompleted += DoLogin;
proxy.loginAsync("user", "password");

在Rererence.cs中,我看到以下代碼看起來像APM:

public System.IAsyncResult Beginlogin(string usn, string pwd, System.AsyncCallback callback, object asyncState) 
{
    object[] _args = new object[2];
    _args[0] = usn;
    _args[1] = pwd;
    System.IAsyncResult _result = base.BeginInvoke("login", _args, callback, asyncState);
    return _result;
}

public bool Endlogin(System.IAsyncResult result)
{
    object[] _args = new object[0];
    bool _result = ((bool)(base.EndInvoke("login", _args, result)));
    return _result;
}

當我使用EAP調用WCF服務時,為什么要使用APM方法?

當您生成服務引用並將其設置為在客戶端生成異步操作時,從.NET 3.5及更高版本開始,它將使用/async /tcv:Version35參數調用svcutil.exe ,並將生成APM和EAP異步操作。

來自MSDN

將/ tcv:Version35與/ async開關一起使用時,將生成基於事件和基於回調/委托的異步方法。 此外,還啟用了對啟用LINQ的DataSet和DateTimeOffset的支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM