如何从任务中正确获取函数返回值?

时间:2015-11-03 14:58:41

标签: c# wpf task

我正在尝试(没有成功)异步调用函数并等待其返回值

bool result = Task.Factory.StartNew(() => { return StupidFunction(someParameter); }).Result;

if (result)
    MessageBox.Show("Yes");
else
    MessageBox.Show("No");

其中愚蠢的函数是public static bool函数

并且应用程序永远挂起。

1 个答案:

答案 0 :(得分:0)

解决了

Task.Run(() =>
{
    if (StupidFunction(someParameter))
        Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => MessageBox.Show(Application.Current.MainWindow, "yes")));
    else
        Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => MessageBox.Show(Application.Current.MainWindow, "no")));
});