我有一个我想等待的方法,但我不想造成多米诺骨牌效应,认为任何东西都可以调用这个调用方法并等待它。例如,我有这个方法:
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 修饰符的情况下以某种方式等待这段代码?