C#新任务说明

问题描述 投票:0回答:1

在阅读了不同年份发布的多篇文章后,我变得更加困惑了。

我想知道如何确保我创建的任务能在多核上运行?

下面的函数必须处理大量的文件被上传到服务器。

private void FileSystemWatcher_Created(object sender, System.IO.FileSystemEventArgs e)
    {

        var SyncTask = new Task(() => 
        {

            //DO A LOT OF WORK HERE
        });

        SyncTask.Start();

    }

我只是无法找到一个直接的答案,如果这是4.7.2.NET框架上的方式或不?

c# multithreading task-parallel-library multitasking
1个回答
0
投票

任务本身会运行在一个 单一 核心。 如果你想让"/DO AOT LOT WORK HERE "在多个内核上运行,你需要通过从这个任务中产生任务来并行化这些工作(也可以参见 儿童任务或使用更简单的 Parallel.

否则,无论你使用你的方法或只是 Task.Run(..) 在你的情况下,这并不十分重要。

编辑 看这个 文章,它很好地解释了两者的区别。

© www.soinside.com 2019 - 2024. All rights reserved.