Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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)_C#_Asynchronous_Async Await - Fatal编程技术网

C# 等待无效任务(C)

C# 等待无效任务(C),c#,asynchronous,async-await,C#,Asynchronous,Async Await,我需要在运行一个空任务之后运行一些有用的代码,然后再等待它完成 样本: private void Button_Click(object sender, RoutedEventArgs e) { Task t = SomeAsync(); MessageBox.Show("before end"); await t; // <-- how to write this? MessageBox.Show("after end"); } private asyn

我需要在运行一个空任务之后运行一些有用的代码,然后再等待它完成

样本:

private void Button_Click(object sender, RoutedEventArgs e)
{
    Task t = SomeAsync();
    MessageBox.Show("before end");
    await t; // <-- how to write this?
    MessageBox.Show("after end");
}

private async Task SomeAsync()
{
    await Task.Run(() =>
    {
        //do some work;
    });
}
我知道如何在任务上写这篇文章,但不理解async/await。有人会写工作样本吗


谢谢。

只需将处理程序声明为异步即可


你应该考虑一下,试试看。在t中捕获为未处理的错误将作为应用程序未处理的异常出现,并使应用程序停止运行。您可以使用来处理所有未观察到的任务异常,但您应该阅读文档,看看这是否适合您的应用程序。

如果Button\u Click被声明为异步,那么它应该可以工作;但您也可以执行var result=waitSomeAsync@jpaugh我不能那样做,因为我想在留言框里做些工作;在示例中,在等待任务结束之前。下面的答案是我想要的。下面的答案正是我提到的。
private async void Button_Click(object sender, RoutedEventArgs e)
{
    Task t = SomeAsync();
    MessageBox.Show("before end");
    await t; 
    MessageBox.Show("after end");
}