相关疑难解决方法(0)

Task.Result和.GetAwaiter.GetResult()一样吗?

我最近在阅读一些使用大量异步方法的代码,但有时需要同步执行它们.代码确实:

Foo foo = GetFooAsync(...).GetAwaiter().GetResult();
Run Code Online (Sandbox Code Playgroud)

这是一样的吗?

Foo foo = GetFooAsync(...).Result;
Run Code Online (Sandbox Code Playgroud)

c# async-await

281
推荐指数
6
解决办法
9万
查看次数

.Wait()和.GetAwaiter()之间有什么区别.GetResult()?

我的方法返回Task.我想等到它完成.我应该使用 .Wait().GetAwaiter().GetResult()?他们之间有什么区别?

c# multithreading asynchronous

66
推荐指数
1
解决办法
2万
查看次数

为什么异步的异常void会导致应用程序崩溃,但是异步会导致任务被吞噬

我知道async Task可以通过以下方式获取例外情况:

try { await task; }
catch { }
Run Code Online (Sandbox Code Playgroud)

虽然async void不能,因为它无法等待.

但是为什么不等待async Task(就像异步void一样)Exception被吞下,而void的那个崩溃了应用程序?

来电者:ex();

:

async void ex() { throw new Exception(); }
async Task ex() { throw new Exception(); }
Run Code Online (Sandbox Code Playgroud)

.net c# asynchronous async-await

6
推荐指数
2
解决办法
833
查看次数

标签 统计

c# ×3

async-await ×2

asynchronous ×2

.net ×1

multithreading ×1