共用方式為


多執行緒服務

服務控制管理員 (SCM) 藉由將服務控制事件傳送至服務的控制處理常式常式來控制服務。 服務必須及時回應控制事件,讓 SCM 可以追蹤服務的狀態。 此外,服務的狀態必須符合其 SCM 接收狀態的描述。

由於服務與 SCM 之間的此通訊機制,您必須在服務中使用多個執行緒時小心。 當服務指示停止 SCM 時,必須先等候所有線程結束,再向 SCM 回報服務已停止。 否則,SCM 可能會混淆服務的狀態,而且可能無法正確關閉。

SCM 必須通知服務正在回應停止控制事件,以及正在停止服務中的進度。 如果服務在對SetServiceStat) us的呼叫中指定的時間內 (等候提示) 指定的時間內,服務會假設服務正在進行 (,而且檢查點會更新為大於先前呼叫SetServiceStatus中指定的檢查點。

如果服務向 SCM 回報服務已在所有線程結束之前停止,則 SCM 可能會將此解譯為一個擷取。 這可能會導致無法停止或重新開機服務的狀態。