回答
任務在線程上執行。 OS將線程調度到核心。內核是一個邏輯概念,與物理CPU芯片不同。
創建Environment.ProcessorCount
任務,或者最好使用更高級別的第三方物流結構,如PLINQ或Parallel
之一。
如果使用任務庫(PTL),則不需要擔心這一點。你可以閱讀更多關於它here。簡而言之:
TPL動態調整併發度以最有效地使用所有可用的處理器。此外,TPL處理工作劃分...
我們已經創建了周圍任務的包裝如下:
public static class PeriodicTaskFactory
{
public static Task Start(Action action, int intervalInMilliseconds = -1, int delayInMilliseconds = 0, int duration = -1, int maxIterations = -1, bool synchronous = false, CancellationToken cancelToken = null, TaskCreationOptions periodicTaskCreationOptions = TaskCreationOptions.None);
}
然後我們把它像這樣。在這種情況下,我們想要執行的唯一工作是每1分鐘調用一次方法,第一次執行時延遲1秒。
PeriodicTaskFactory.Start(() =>
{
CdClMappingLogic.Invoke();
}, 60000, 1000, -1, -1, true)
你能更具體嗎?是的,我正在閱讀該文件。 – user2381422
基本上他在這裏保存的是你在TPL中定義了工作並讓框架計算出有多少個線程......等來創建。你只需定義每個線程要做什麼。 – TheKingDave
@ user2381422 - 是的,正如TheKingDave所說,它使用起來非常簡單。您可以定義要執行的工作,將其包裝在一個任務中,並且.NET FW根據cpu和其他資源決定如何最好地執行該工作塊。 –
- 1. 線程是否始終運行在同一個內核上?
- 2. 如何檢查進程是否仍在c內核中運行?
- 3. 在多個內核上運行程序
- 4. 在多個GPU上運行OpenCL內核?
- 5. 線程是否在整個生命週期內運行在同一個CPU /內核上?
- 6. 如何在一個GPU上使用CUDA運行多個內核?
- 7. 是否有可能在監視任務後運行任務?
- 8. 是否有一個運行Laravel Artisan任務的gulp插件?
- 9. C#任務不是一個任務
- 10. 異步模式 - 上一個任務完成時運行任務
- 11. C#中的單個任務是否可以在多核系統上並行執行?
- 12. Will Ansible任務是否運行?
- 13. 從任務內運行任務。 (手錶)
- 14. 任何方式來檢測EntityFramework核心是否在工具內運行?
- 15. 如何使OpenMP線程或任務在特定內核上運行
- 16. 如何測試一個內核是否是一個有效的內核
- 17. 是否可以在一個JVM中運行多個映射任務?
- 18. 是否有可能在C#中的同一線程上同時運行兩個任務?
- 19. Asp.Net核心長時間運行任務
- 20. 隊列在Laravel隊列上運行X個下一個任務
- 21. 是否可以在一張桌子上運行「symfony doctrine build --all」任務?
- 22. 運行多個C#任務異步
- 23. 並行任務運行異步並等待 - 無法使用多個內核
- 24. 每週運行一次任務,在Heroku上只運行4次
- 25. 在C++中是否有任何內置功能在計劃時間運行任務
- 26. 監控運行Hadoop任務的CPU內核
- 27. 在後臺運行一個任務總是在android
- 28. 是否可以使用CPU上的單個核心運行Tensorflow?
- 29. 如何在每次任務中運行一個capistrano任務?
- 30. 是否有可能殺死正在運行的CUDA內核?
據我所知,託管線程甚至不一定在自己的本地線程上運行。所以我認爲你的問題的答案是「不」。 – ken
一個任務的工作原理非常像它運行的核心線程(我相信)。要回答你的問題,這取決於你的任務在做什麼,他們使用大部分的CPU/IO /內存/磁盤資源......? – TheKingDave
任務可以從一個核心跳到另一個核心。你真正應該問的是「一個任務運行在多個核心上嗎?」。號碼 –