2012-01-30 35 views
0

我有一個工作進程,通過Windows服務(vb.net)執行。它每5分鐘執行一次並檢查數據庫中的「作業」表。我還有一個Web應用程序(asp.net vb),允許用戶在發生錯誤時「暫停」當前正在運行的作業。多線程和進程信令

什麼是Web應用程序的信號Windows服務停止處理的最佳方式?他們在同一臺機器上運行,但是如果你有一個關於他們是否在不同的機器上運行的建議,那很好。

我想避免數據庫或文件系統調用每個迭代過程中檢查「狀態」。

我有存儲每個工作進程的自定義信息數據庫 - 我可以存儲線程ID或進程ID,如果它是通過檢索淨,使Web應用程序的消息服務應用程序?

回答

1

你可能想使你的服務WCF服務器。

然後你可以用它從你的web應用程序通信或到任何地方。您還可以提供進度/反饋API以及命令/控制API - 這取決於您。

+0

謝謝,完美的時機! – Dane 2012-01-30 23:09:47

0

一個有多種方式來實現在.Net框架的進程間通信。要命名其中兩個可用的框架:

  • .NET遠程
  • Windows通訊基礎(WCF)

,而第一個是簡單的,而是舊,新的路要走應是WCF。我建議你參考Beginner's Guide to Windows Communication Foundation的各種示例。

0

您也可以使用依賴系統信號量的named semaphore,允許您的進程實現生產者/消費者模式。