我正在向 API 添加异步功能。我有这个界面:
public interface IThing
{
bool Read();
Task<bool> ReadAsync();
}
调用者可以像这样异步使用它:
using (IThing t = await GetAThing())
{
while (await t.ReadyAsync();
{
// do stuff w/the current t
}
}
有一个实现 IThing 的类:
public class RealThing : IThing
{
public bool Read()
{
// do a synchronous read like before
}
public Task<bool> ReadAsync()
{
return _internal.ReadAsync(); // This returns a Task<bool>
}
}
这编译和工作!但其他示例更喜欢 ReadAsync() 的这种实现:
public async Task<bool> ReadAsync()
{
return await _internal.ReadAsync();
}
鉴于调用者将等待,为什么 API 中的 async/await ?