簡體   English   中英

TaskScheduler仍需要處理的任務數

[英]TaskScheduler Number of tasks that still need to be processed

我有一個服務器池,用於負載平衡某些工作。 這項工作被划分為離散的工作項,但是無法確定給定工作項將花費多少時間。

每個服務器使用TPL安排工作項的工作。 為了真正實現工作的負載平衡,我需要能夠確定每台服務器有多少待處理的工作項。

我需要做的就是獲取默認TaskScheduler的計划工作項目數。 理想情況下,我可以使用TaskSchduler.GetScheduleTasks,但此方法受保護。

一個明顯的解決方案是編寫我自己的“定制計划程序”並公開許多計划任務。 這遠不是理想的解決方案,因為我只需要這個數字,實際上我不會寫像默認的TaskScheduler一樣好的代碼。 我找不到默認任務計划程序的實現。 如果我能從中繼承呢? 有什么想法可以解決這個問題嗎?

我需要做的就是獲取默認TaskScheduler的計划工作項目數。

只需添加一個計數器,在計划新任務時將其遞增,在任務完成時將其遞減。 不要忘記使用使其線程安全,例如通過使用Interlocked.Increment

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM