我正在使用C#編寫一個WCF路由器,我想保持運行而不使用Console.ReadKey「hack」。我想知道是否有一種可接受的方式在C#內執行此操作,這比C#更優雅什麼是編寫C#TSR的可接受方式?
while (true)
Thread.Sleep(100);
我正在使用C#編寫一個WCF路由器,我想保持運行而不使用Console.ReadKey「hack」。我想知道是否有一種可接受的方式在C#內執行此操作,這比C#更優雅什麼是編寫C#TSR的可接受方式?
while (true)
Thread.Sleep(100);
創建一個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.
服務可以存在於三種基本狀態之一:運行,暫停或停止。您可以查詢狀態以確定服務所處的狀態。
也許使用ManualResetEvent?
ManualResetEvent stopEvent = new ManualResetEvent(false);
public void StartService()
{
service.Open();
stopEvent.WaitOne()
}
然後,您可以在希望服務終止時執行stopEvent.Set()。
Heh有點困惑。 ManualResetEvent答案是最接近我想要的,我可能會使用它,但Windows服務是我的問題措辭和一般用法的更好答案,因此它獲得了接受的打勾。謝謝你們,都很好的答案! – dlanod 2010-06-07 22:47:09