2
我確定這是一個非常常見的情況,但我無法在MSDN上找到有關它的信息。在.net窗口服務中處理停止
比方說,我有一個執行事務的服務,當我得到一個停止請求時,我想確保在實際過程終止之前完成了當前事務。
我知道Windows似乎有一個「停止」狀態,但我不知道如何控制從ServiceBase.OnStop方法。
我是否希望在註冊停止請求後立即從OnStop返回?如果是這樣,我該如何表明什麼時候我真的完成了?
或者,我應該阻止並不是從OnStop返回,直到當前事務完成? (即,Windows自動將服務置於OnStop調用和OnStop返回之間的「停止」狀態)
此外,「OnStop」方法有一個超時(默認30秒)。如果該方法在那段時間沒有完成執行,則停止服務被中止。 – 2013-03-11 10:27:01
謝謝你們 - 看起來我這麼多年來一直在做錯:-)在這裏也發現了一篇優秀的文章http://blogs.msdn.com/b/bclteam/archive/2009/02/19/in-depth看起來像.Net團隊做了很好的工作,從SCM交互的細節中抽象出我們;他們的工作流程如圖1所示。這是框架文檔沒有描述的恥辱 – Andy 2013-03-11 10:47:37