当前位置:  开发笔记 > 编程语言 > 正文

调用方法并等待返回值

如何解决《调用方法并等待返回值》经验,为你挑选了1个好方法。

如何调用返回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返回给调用方法.

我不知道该怎么做.



1> Reed Copsey..:

大多数异步方法返回IAsyncResult.

如果是,您可以使用IAsyncResult.AsyncWaitHandle阻止(IAsyncResult.AsyncWaitHandle.WaitOne)阻止,直到操作完成.

即:

bool aBool;

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

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有