为什么等待Task.Run(()=> SomeMethod())不等待?

时间:2017-07-20 20:10:37

标签: c# async-await

我试着阅读Cleary的帖子,并且还搜索了StackOverflow,但仍然没有得到关于async await和await的一些行为。任务.Run()

我的代码:

private async void ValidateLexisNexis()
    {
        _view.LogProcess(@"I'm Starting..", true);
        await Task.Run(() => SomeAsynchMethod());
        _view.LogProcess(@"Im out of SomeSynchMethod", true);
    }
private async void SomeAsynchMethod()
    {
        await Task.Delay(2000);
        MessageBox.Show(@"Hi I'm in");
    }

现在我预料到了:

  1. 记录我开始......
  2. 创建一个新线程并运行SomeAsynchMethod(),等待响应,消息"您好我在"
  3. 记录我的某些AsynchMethod
  4. 现在,没有2是我的问题,代码在没有2之前继续没有3,我想知道,在Task.Run之前等待的目的是什么?如果在继续记录之前等待Task.Run,​​那么ValidateLexisNexis不应该等待响应吗?

    P.S。 - 我知道我可以在没有Task.Run的情况下使用等待SomeAsynchMehtod()然后它按预期工作,但我试图理解为什么使用Task.Run await并不等待。

    感谢!!!!

0 个答案:

没有答案