我应该在所有客户端线程之间共享Task<ISomething>
。此外,我还会为每个请求创建一次Worker
课程services.AddScoped<Worker>()
。
在我的异步代码中初始化ISomething
而不构建多次的正确方法是什么?
如果资源正在构建(调用webservice),则其他请求应异步等待,直到完成,然后继续。锁定也不是AFAIK的选择。 AsyncLazy
好主意吗?
答案 0 :(得分:0)
可以根据需要等待任务。
在这种特殊情况下,由于任务将在大部分时间内完成,scratch
将是更好的选择。
我没有提及创建ValueTask<T>
的详细信息,但您可以在大多数DI容器中注入ISomething
。