如何调用返回 bool 值的方法,但是在该方法内部为了确定 bool 值,它异步地调用Web服务?

bool myBool = GetABoolean(5);

public bool GetABoolean(int id)
{

  bool aBool;

  client.CallAnAsyncMethod(id);  // value is returned in a completed event handler.  Need to somehow get that value into aBool.

  return aBool;  // this needs to NOT execute until aBool has a value

}

因此,我需要的是让GetABoolean方法等待CallAnAsyncMethod完成并返回一个值,然后再将bool返回给调用方法。

我不确定该怎么做。

最佳答案

大多数异步方法返回 IAsyncResult。

如果您这样做,您可以使用 IAsyncResult.AsyncWaitHandle 阻塞 (IAsyncResult.AsyncWaitHandle.WaitOne) 阻塞直到操作完成。

IE:

bool aBool;

IAsyncResult res = client.CallAnAsyncMethod(id); res.AsyncWaitHandle.WaitOne(); // Do something here that computes a valid value for aBool! return aBool;

10-08 00:04