【发布时间】:2021-02-02 15:58:14
【问题描述】:
我正在使用并发字典来实现一个简单的查找服务来存储数据。
由于使用此服务的大多数方法都是异步的,因此我正在考虑使用 ValueTask<TResult> 公开查找函数。
伪代码:
public ValueTask<string> GetResultAsync(string key)
{
return ValueTask.FromResult(_dictionary.FirstOrDefault(p => p.Key == key).Value
}
这种方法有意义吗?有什么注意事项吗?
【问题讨论】:
-
没有意义,异步方法调用容易调用同步方法。如果您将您的方法公开为异步,您必须真正打算这样做,如果涉及 IO、网络或外部的东西。
-
这种方法是否以异步方式运行?您是否正在考虑提供一些使用异步访问的缓存的覆盖实现?
-
@CaiusJard 我怀疑是否会涉及任何真正的异步代码,正如您在示例中看到的那样,唯一将运行的代码将是同步的,它只会进行查找或字典修改。跨度>
标签: c# asynchronous task valuetask