-2
Webサービス(WSDL)といくつかのvoid非同期メソッド(私はタスクを返すように変更できません)を使用して、より長い要求を呼び出します。void非同期メソッドからの戻り値を取得
このメソッドからどのように結果値を取得できますか?
Webサービスでは、EventHandler、EventArgs(私はEventHandleデリゲートで使用する必要があります)があります。
それで基本的な質問ですが、結果を得るためにこれらのことをどのように手がかりにすることができますか?
私は今まで、これを持っている:
//Methods signatures
getSomethingCompletedEventArgs(object[] results, Exception, bool, object userState)
getSomethingCompletedHandler(object sender, Service.getSomethingCompletedEventArgs)
//Didn't build
Service srv = new Service()
srv.getSomethingCompleted += new getSomethingCompletedEventHandler(srv.getSomethingAsync);
//Other try
var args = new getSomethingCompletedEventArgs(null, new Exception(), false, "");
//Didn't build too (Method name expected)
srv.getSomethingCompleted += new getSomethingCompletedEventHandler(args);
//This built, but I don't know how to get the results
public async static void GetSomething()
{
await Task.Run(() => srv.getSomethingAsync(arg1,arg2,arg3));
}
'void'メソッドには戻り値がありません。あなたはそれらからどのように得ることができると思いますか? – DavidG
あなたのアプリが実際にやっていることに関する周囲の情報が大量になくても、あなたの質問を理解することさえ困難です。非同期要求を行う場合は、最終的に成功または失敗を示す「イベント」を受け取る「コールバック」を指定する必要があります。上記の "Other try"と表記されたさまざまなコードでは、あなたが正しい方向に多かれ少なかれ絡み合っているように見えますが、まだそれほど正しかったわけではなく、あまりにもあまりにもあきらめていますすぐに。 –
DavidG、リクエストを*発行*する呼び出しは実際には 'void'である可能性があります。なぜなら* they *は値を返さないからです。予想される事象の1つが発生したときに、未知の将来のある瞬間に、「返される」ような値が提供される。値は、イベントとともに、それらのハンドラに提供されるデータの一部になります。 –