【发布时间】:2015-11-03 14:58:41
【问题描述】:
我正在尝试(没有成功)异步调用一个函数并等待它的返回值
bool result = Task.Factory.StartNew(() => { return StupidFunction(someParameter); }).Result;
if (result)
MessageBox.Show("Yes");
else
MessageBox.Show("No");
愚蠢的函数是public static bool函数
应用程序永远挂起。
【问题讨论】:
-
那么
StupidFunction()是做什么的? -
您在寻找
bool result = await Task.Factory...吗? -
好吧,除非
StupidFunction()没有返回,或者StupidFunction()对用户界面做了什么,否则您发布的代码将起作用。 -
顺便说一句,您不会异步调用此函数。仅仅启动一个任务并不会使其异步,通过在最后使用
.Result,它让它在那里等待直到它得到结果。为什么不使用 async/await 模式并标记StupidFunctionasync 并等待它?