如何调用返回 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) 来阻止直到操作完成。
即:
bool aBool;<p></p>
<p>IAsyncResult res = client.CallAnAsyncMethod(id);
res.AsyncWaitHandle.WaitOne();
// Do something here that computes a valid value for aBool!
return aBool;
</p>
关于c# - 调用方法并等待返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/636180/