如何使我的自定义TaskScheduler成为默认任务调度器

本文关键字:默认 任务调度 TaskScheduler 何使 我的 自定义 | 更新日期: 2023-09-27 18:00:04

我有自己的TaskScheduler实现。它存在的主要原因是它将设置处理器核心与运行我的任务的线程的相关性。

当我以以下方式使用它时:

var myTaskSceduler = new MyTaskScheduler(4);
var taskFactory = new TaskFactory(myTaskSceduler);
taskFactory.StartNew(DoSomething);

亲和性工作正常,任务将仅在指定的核心上运行。

我如何更改Task.FactoryTask.Factory.Scheduler,以便每当时我的调度程序都是默认的

 Task.Factory.StartNew()

正在被呼叫?

如何使我的自定义TaskScheduler成为默认任务调度器

为什么不创建自己的静态方法MyTask.StartNew()?您不需要将亲和性指定为参数吗?

在任何情况下,当您调用StartNew时,任务工厂都应该使用相同的调度程序。因此,如果你在适当的调度程序上对任务进行这样的处理,它应该会很好地工作。这实际上取决于你如何处理你的处理调度等,但我认为,如果你不想把亲和性传递到任何地方,你无论如何都会依赖于上下文。