2012-04-02 54 views
0

我寫了一個窗口服務,它使用線程執行一些任務。現在我正在編寫一個應用程序,它使用窗口服務控制器來控制窗口服務。還有一些線程是我想要的從這個第三方應用程序進行控制。我嘗試使用數據庫啓動/停止線程,但它似乎並不是一個合適的解決方案。我認爲必須有一些東西能夠支持來自第三個應用程序的窗口服務控制器等控制線程。 任何幫助將不勝感激。 謝謝使用第三個應用程序控制窗口服務中的線程

回答

1

您可以覆蓋服務中的OnCustomCommand以允許來自服務控制器的通信通過ExecuteCommand。

你只能發送128到256之間的數字,但如果你將它包裝在一個枚舉中,它應該是可行的。如果您需要發送更多數據,則在發送命令後仍然可以通過數據庫讀取該數據。

+0

謝謝你的訣竅真的很棒 – 2012-04-13 09:48:38

0

什麼是運作良好,我是在我的業務主管線程輪詢命令,並反過來數據庫表中控制工作線程。管理員還將狀態寫回數據庫中的另一個表。

UI控制器應用程序輪詢狀態表並將命令寫入命令​​表。當服務響應命令時,它將結果回顯到狀態表,給予用戶正面的反饋。

我還使用第三個表作爲工作線程寫入的活動隊列,並由控制器顯示,以便用戶可以看到發生了什麼。限制活動表可以增長的大小,以便控制器不必始終處於運行狀態。

使用事務來保護表,這可以長時間無人值守地運行。

相關問題