1
私が作ったコンソールプログラムで、実行中のサービスを停止しようとしています。 これは私のコードです:サービスを停止する
ServiceController sc = new ServiceController(ServiceName, ".");
sc.Stop();
私はその後停止に変身するために、サービスの状態を待つが、これが起こることはありません。 StopPendingがあると思われ、決してGoto Stoppedしません。 Services.mscにチェックマークを付けると、停止したものとしてリストされ、タスクマネージャーではプロセスは終了しています。
永遠に保留になりますか?私は何か間違っているのですか? 私はそこに何かを変更する必要がある場合、私はサービスのコードも持っています。
私はすでに待っています。それは保留から変更されていないようです。 – Nicolai
実際、これはうまくいくようです。私は自分自身をチェックしていましたが、whileループで、sc.statusに尋ねました。私はなぜそれが決して保留から変わったのか分からない。 WaitForStatusに変更すると修正されました。 – Nicolai
@ Nicolay、おそらく状態がキャッシュされていました。ステータスを更新する 'sc.Refresh()'メソッドがあります。しかし、WaitForStatusはより良い解決策です – HugoRune