【发布时间】:2013-05-28 10:54:04
【问题描述】:
我有一个我想等待的方法,但我不想造成多米诺骨牌效应,认为任何东西都可以调用这个调用方法并等待它。比如我有这个方法:
public bool Save(string data)
{
int rowsAffected = await UpdateDataAsync(data);
return rowsAffected > 0;
}
我在打电话:
public Task<int> UpdateDataAsync()
{
return Task.Run(() =>
{
return Data.Update(); //return an integer of rowsAffected
}
}
这行不通,因为我必须在 Save() 的方法签名中添加“异步”,然后我不能返回 bool 我必须让它 Task<bool> 但我不希望任何人在等待Save() 方法。
有没有一种方法可以像 await 一样暂停代码执行,或者在没有 async 修饰符的情况下以某种方式等待这段代码?
【问题讨论】:
-
如果你让我访问阻止我的线程的
Save方法,我会非常恼火,从而迫使我将调用包装在Task中,这正是你可以返回的首先是我。只是说。
标签: c# .net-4.5 async-await