从 void 异步方法获取 return 值

Get return value from void Async Method

我有一个 Web 服务 (WSDL) 和一些无效的异步方法(我无法将其更改为 return 任务)来调用更长的请求。

如何从这些方法中获取结果值?

在 Web 服务上,我有一些 EventHandlers、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));
}

所以,我缺少一种方法来实现我的回调并委托它。

Service srv = new Service();

src.getSomethingCompleted += returnMethod;

Task.Run(() => srv.getSomethingAsync(arg1, arg2, arg3));

private static void returnMethod(object sender, getSomethingCompletedEventArgs e)
{
    var result = e.Result.items.ToList();
}

当 getSomethingAsync 收到 Completed 状态时调用 return 方法。