Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从任务中获得结果_C#_Wpf - Fatal编程技术网

C# 从任务中获得结果

C# 从任务中获得结果,c#,wpf,C#,Wpf,我有以下任务,我想等待它 public Task ShowWindow<TWindow>(TWindow window) where TWindow : Window { var task = new TaskCompletionSource<bool>(); window.Owner = Application.Current.MainWindow; window.ShowDialog(); task.SetResult(window.D

我有以下
任务
,我想
等待它

public Task ShowWindow<TWindow>(TWindow window) where TWindow : Window
{
    var task = new TaskCompletionSource<bool>();
    window.Owner = Application.Current.MainWindow;
    window.ShowDialog();
    task.SetResult(window.DialogResult ?? false);
    window.Focus();
    return task.Task;
}
我如何访问
任务的结果?
我想象了下面这样的事情,但显然我错过了一些东西:

private async void SettingsButton_Click(object sender, RoutedEventArgs e)
{
    bool result = await ShowWindow(new SettingsWindow());

    if(result == true)
        doSomething();
}
这给了我一个错误:
wait任务没有返回值

但我的印象是我正在返回一些东西。

公共任务显示窗口
更改为
公共任务显示窗口
任务
是与
无效
等价的
异步
Task
是返回
T
的方法的
async
等价物


然而,这里似乎没有任何真正的
async
代码;它看起来像是
ShowWindow
将在调用线程上运行到完成,这可能会使
Task
(有或没有
)变得多余。

它实际上做了一些事情:它在单击父窗口时启用闪烁:vs.感谢您的快速回答:)
private async void SettingsButton_Click(object sender, RoutedEventArgs e)
{
    bool result = await ShowWindow(new SettingsWindow());

    if(result == true)
        doSomething();
}