【发布时间】:2013-08-03 08:31:12
【问题描述】:
我对@987654321@ 和await 的概念还很陌生。现在我有这样的东西:
public async void DoSomething()
{
using (var obj = new SomeClass())
{
await obj.SomeAction();
}
Done = true;
}
但是随着obj对象的创建和管理变得越来越复杂,我想将它重构为这样的:
public async void DoSomething()
{
Manager.Execute(obj =>
{
await obj.SomeAction();
});
Done = true;
}
但是上面的代码不会编译。它肯定在这里或那里缺少一些async 或await 关键字。我也不知道如何编写Execute() 方法。你能帮忙吗?
【问题讨论】:
-
你应该避免
async void。它不允许调用者知道它何时完成,具有困难的异常处理语义,不能用于单元测试等。
标签: c# .net .net-4.5 async-await c#-5.0