假设我有一个需要从非异步方法调用的异步方法/任务,并且我可以使用JoinableTaskFactory来执行此操作,就像这样:
var jtf = new JoinableTaskFactory(new JoinableTaskContext());
var serviceResponse = jtf.Run(async () => await _service.UpdateSomethingAsync(requestObject));
它与这个有什么不同:
var task = System.Threading.Tasks.Task.Run(async () => await _service.UpdateSomethingAsync(requestObject));
var serviceResponse = task.Result;
或者这样:
ServiceResponse serviceResponse = null;
var task = Task.Run(async () => serviceResponse = await _service.UpdateSomethingAsync(requestObject));
Task.WaitAll(task);
如果我有一个需要从非异步方法执行的任务,那么实际上最好的做法是什么,因为有很多可选项可供选择?
JoinableTaskFactory
提供了一个专门为编程 Visual Studio 功能而设计的 API 接口。除非你正在进行这方面的工作,否则我不建议依赖它。 - Aluan HaddadJoinableTaskFactory
提供了一个专门为编程 Visual Studio 功能而设计的 API 接口。除非你正在进行这方面的工作,否则我不希望对它产生依赖。 - Aluan HaddadJoinableTaskFactory
提供了一个专门为编程 Visual Studio 功能而设计的 API 接口。除非你正在进行这方面的工作,否则我不希望对其进行依赖。 - undefinedJoinableTaskFactory
无关。它是在警告你正确使用async
/await
/Task
。你应该使用await Task.WhenAll
。使用WaitAll
会阻塞,应该避免使用。 - Aluan HaddadJoinableTaskFactory
无关。它是在警告你正确使用async
/await
/Task
。你应该使用await Task.WhenAll
。使用WaitAll
会阻塞,应该避免使用。 - Aluan Haddad