0

我正在向 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 ?

4

1 回答 1

4
public async Task<bool> ReadAsync()
{
  return await _internal.ReadAsync();
}

没有必要这样做。它只会增加开销,并没有提供任何好处。

你的代码更好:

public Task<bool> ReadAsync()
{
  return _internal.ReadAsync();
}
于 2012-12-03T21:05:35.510 回答