首页 > 解决方案 > Task.Run 中存在 async/await

问题描述

假设以下虚构(且无用)的方法:

public async Task SomethingAsync()
{
    await SomeAsyncOperation();
}

public async Task Execute(int numOfTimes)
 {
    var tasks = new List<Task>();

    for (var i = 0; i < numOfTimes; i++)
    {
        // how does this...
        var task = Task.Run(async () => await SomethingAsync());
        // differ to the line below? (i.e. no async/await in Task.Run)
        // var task = Task.Run(() => SomethingAsync());

        tasks.Add(task);
    }
    await Task.WhenAll(tasks);
}

public async Task Test()
{
    await Execute(10);
}

其中存在或不存在async/await关键字如何Task.Run()影响相关任务?

我在 SO 上发现了一个类似的问题,但是.Result它完成了任务,这是我没有做的事情。

标签: c#.nettask-parallel-library

解决方案


推荐阅读