我正在从Task.Run切换到Hangfire.在.NET 4.5+中Task.Run可以返回Task<TResult>,它允许我运行返回除以外的任务void.我通常可以通过访问该属性等待并获得我的任务结果MyReturnedTask.Result
我的旧代码示例:
public void MyMainCode()
{
List<string> listStr = new List<string>();
listStr.Add("Bob");
listStr.Add("Kate");
listStr.Add("Yaz");
List<Task<string>> listTasks = new List<Task<string>>();
foreach(string str in listStr)
{
Task<string> returnedTask = Task.Run(() => GetMyString(str));
listTasks.Add(returnedTask);
}
foreach(Task<string> task in listTasks)
{
// using task.Result will cause the code to wait for the task if not yet finished.
// Alternatively, you can use Task.WaitAll(listTasks.ToArray()) to wait for all tasks in the list to …Run Code Online (Sandbox Code Playgroud)