2012-01-25 25 views
0

我有一個調度程序正在Windows服務上運行。對於每個新事件,它都會創建新線程。然後每個線程使用AddIn Framework加載DLL並執行任務。更改調度程序的主機機制

它工作正常,但現在但根據新的要求,我希望能夠殺死任何事件,如果我們決定這樣做或事件需要很多時間在執行。

代碼啓動線程

ThreadStart ts = KickOffEvents; 
Thread t = new Thread(ts); 

所以這樣做,我需要發出東西,所以調度程序可以理解並殺死特定的線程。但是,作爲託管在窗口服務上的調度程序,我無法這樣做。

任何人都可以告訴任何工作在這???

目前我正在努力通過創建WCF服務將調度功能移動到IIS。然後,我將能夠調用wcf服務的功能,這將以某種方式殺死任何事件(線程)。

任何人都可以提供任何輸入是否有任何潛在風險嗎?

在此先感謝

+0

你如何產卵線程來執行工作? –

+0

用代碼更新的說明。 – Denish

回答

0

沒有辦法的調度明確地殺死它已經催生了線程。你將需要設置一個線程尋找的標誌,它將不得不自動關閉。還有什麼會導致不確定的行爲

您可以使用WCF服務請求來設置該標誌

+0

你的意思是:我需要爲每個正在運行的事件設置一個標誌,並且我需要更改每個作業的代碼以定期檢查該標誌......讓每個函數執行完之後再說,然後如果標誌被設置,線程自殺。一些similer? – Denish

+0

是的 - 沿着這些路線的東西 - 希望當你處理你有地方的線程,你可以檢查你是否被要求取消,如你所說,讓線程清理並殺死自己 –