Ho la mia implementazione di TaskScheduler
. La ragione principale della sua esistenza è che imposterà l'affinità core del processore con il thread che esegue il mio task.Come rendere il mio TaskScheduler personalizzato quello predefinito
Quando uso nel seguente modo:
var myTaskSceduler = new MyTaskScheduler(4);
var taskFactory = new TaskFactory(myTaskSceduler);
taskFactory.StartNew(DoSomething);
l'affinità funziona bene, l'attività verrà eseguita solamente sul nucleo specificato.
Come posso cambiare Task.Factory
o Task.Factory.Scheduler
quindi il mio scheduler sarà quello di default ogni volta
Task.Factory.StartNew()
viene chiamato?
Non è possibile. 'Task.Factory' e' TaskScheduler.Default' sono supportati da campi statici di sola lettura. L'unico modo in cui un programma di pianificazione predefinito di 'TaskFactory' può essere impostato è tramite il suo costruttore. –