1
問題是,我們沒有辦法在我們嘗試啓動它時嘗試「取消」緩慢/從不啓動的服務,如果時間太長:您是否知道ServiceController類(C#)的任何替代方案
ServiceController ssc = new ServiceController(serviceName);
ssc.Start();
ssc.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(ts)));
讓我們假設我們將'ts'設置爲300秒等待時間太長,等待120後我決定取消操作,我不想等待服務控制器狀態更改或等待發生的時間,我該怎麼做?
然而,我有一個問題,您的代碼從上面,IIUC它擴展的ServiceController類,那麼爲什麼通過ServiceController的實例,除非我失去了一些東西,我們不應該引用對象的屬性本身('this')而不是傳遞參考? – safejrz
@safejrz我寫它的方式可以讓你把功能放在任何你想要的地方。你可以從'ServiceController'派生出來 - 在這種情況下,你不需要傳入'ServiceController',也可以通過在ServiceController上使用'this'修飾符來使其成爲擴展方法,或者你可以把它作爲需要代碼的類中的靜態方法。這一切都取決於你,什麼最適合你,你的團隊和你的代碼庫。 –