2016-11-17 24 views
0

Webサービスを呼び出す必要があるため、WebサービスをWeb参照として追加して呼び出すことができます。今は非同期呼び出しを行う必要があります。なぜなら、大量のデータをダウンロードする必要があり、時間がかかるからです。 async/awaitメソッドを使用しようとしましたが、Webサービスのメソッドが非同期ではないため、これを行うことはできません。webserviceを非同期で呼び出す

オリジナルコード:

public static void validateLogin(JsonParameters _param, ref ValidateCredentials result, ref string excep_error) 
    { 
     var _mobileService = new MobileService(); 
     _mobileService.Url = AppParam.IISSTRING + "/UrlAddressReference"; 
     try 
     { 
      result = _mobileService.downloaddata(_param); 
     } 
     catch (Exception ex) 
     { 
      excep_error = ex.Message; 
     } 

    } 

私は、メソッドの非同期を作るために、ボイドの代わりに、非同期タスクを追加しようとしましたが、どのように私は、Webサービスの応答を待つことができますか?

webserviceをWeb参照として追加した後、非同期メソッドと完了イベントが各メソッドに対して作成されていることがわかりました。どうすればそれらを利用できますか? (例:downloaddata", a method name downloaddataasync`とイベント "downloaddatacompleted")

これを行う方法はありますか、またはWebサービスを変更する必要はありますか?など、public static async Task validateLoginAsync(...) validateLoginを変更する必要があるメソッド呼び出し、およびそれを呼び出すものにそれがかもしれ

をvalidateLoginを変更:あなたは非同期を使用したい場合は

+1

'MobileService.downloaddata'呼び出しの実装は、これがどこから始める必要があるかが分かりやすいため、どのように見えますか? –

答えて

0
public async static Task validateLogin(JsonParameters _param, ref ValidateCredentials result, ref string excep_error) 
     { 
      await Task.Run(()=> 
      { 
      var _mobileService = new MobileService(); 
      _mobileService.Url = AppParam.IISSTRING + "/UrlAddressReference"; 
      try 
      { 
       result = _mobileService.downloaddata(_param); 
      } 
      catch (Exception ex) 
      { 
       excep_error = ex.Message; 
      } 
     }); 
} 
+0

私は下投票が具体的に何だったのだろう... –

+0

私はあまりにも知りたいです –

+0

この方法は私にはありがたくありがとう –

0

は/のawait、正しいアプローチは、あなたが示唆したようですAsyncContextまたはNotifyTaskCompletionを松葉杖(https://github.com/StephenCleary/AsyncEx/wiki/AsyncContext)から使用することは可能ですが、依然としてBackgroundWorkerまたは同様の構造を使用する必要があります。

1

私はそれに各メソッドの非同期メソッドを作成し、イベントを完了したことを見ることができるウェブ参照としてWebサービスを追加した後。どうすればそれらを利用できますか?

これらはEAPです。あなたはwrite TAP wrappers for those EAP membersにする必要があります。 async/awaitのように使用することができます。

関連する問題