C# 在不等待的情况下调用任务时冻结

C# 在不等待的情况下调用任务时冻结,c#,async-await,C#,Async Await,我正在使用async/await编写代码,以满足某些要求,即必须编写类似这样的方法 public bool Foo() { // not async return Foo_Async().Result;// get freeze } public Task<bool> Foo_Async() { bool foo1Result = await Task.Run(()=>Foo1()); } public bool Foo() {//不异步 返回Foo_Asy

我正在使用async/await编写代码,以满足某些要求,即必须编写类似这样的方法

public bool Foo()
{ // not async
    return Foo_Async().Result;// get freeze
}

public Task<bool> Foo_Async()
{
    bool foo1Result = await Task.Run(()=>Foo1());
}
public bool Foo()
{//不异步
返回Foo_Async().Result;//获取冻结
}
公共任务Foo_Async()
{
bool foo1Result=wait Task.Run(()=>Foo1());
}

执行时,应用程序会冻结。

是的,当然你们的应用程序会冻结。调用yo
.Result
被阻塞。正在等待任务完成。您需要Foo()的结果在哪里?hi@ckruczek我只想同步运行Foo_,并在完成内部的wait任务后返回结果。很抱歉,这不是c#的异步部分的设计目的。你最好去一次又一次地阅读关于它的教程,然后……好吧,剩下的你都知道了。这看起来像。