2010-06-07 55 views
3

我正在使用C#編寫一個WCF路由器,我想保持運行而不使用Console.ReadKey「hack」。我想知道是否有一種可接受的方式在C#內執行此操作,這比C#更優雅什麼是編寫C#TSR的可接受方式?

while (true) 
    Thread.Sleep(100); 
+0

Heh有點困惑。 ManualResetEvent答案是最接近我想要的,我可能會使用它,但Windows服務是我的問題措辭和一般用法的更好答案,因此它獲得了接受的打勾。謝謝你們,都很好的答案! – dlanod 2010-06-07 22:47:09

回答

7

創建一個windows service項目。與標準的Windows客戶端相比,Windows服務具有持久的生命週期。

你可以開始here

來自msdn:

服務加載後,必須啓動它。啓動服務允許它開始運作。您可以通過服務控制管理器,服務器資源管理器或通過調用Start方法從代碼啓動服務。 Start方法將處理傳遞給應用程序的OnStart方法,並處理您在此定義的任何代碼。

A running service can exist in this state indefinitely until it is either stopped or paused or until the computer shuts down.服務可以存在於三種基本狀態之一:運行,暫停或停止。您可以查詢狀態以確定服務所處的狀態。

3

也許使用ManualResetEvent?

ManualResetEvent stopEvent = new ManualResetEvent(false); 

public void StartService() 
{ 

    service.Open(); 
    stopEvent.WaitOne() 
} 

然後,您可以在希望服務終止時執行stopEvent.Set()。

相關問題