-1

私はC#の初心者です。私はWindowsサービスを持っています。このサービスでは、スレッドを実行します。スレッド終了直後にサービスを停止したい。現在、私のコードは次のようなものです:

while(true){
     if(isThreadFinished){
          MyService.Stop();
          break;
     }
}

それは機能しますが、 while(true) をそのように使用するのは愚かな方法だと思います。それで、私の要求を達成する他の方法があるかどうか知りたいです。

4

3 に答える 3

1
bool x=true;
while(x==true){
 if(isThreadFinished){
      x=false;
      MyService.Stop();
      break;
 }
}
于 2013-08-14T09:48:41.043 に答える
0

そして、デリゲートを使用しないのはなぜですか? MSDN の公式 Web サイトには、サンプルとドキュメントがあります。

スレッドの終了前にデリゲート メソッドを呼び出すだけです...

それはwhileループよりも適切です...そして、スレッドが長時間続く場合はより最適化します...

于 2013-08-14T09:48:15.933 に答える
0

私はC#を知りませんが、通常、スレッドが終了するのを待つ API thread.join() などがあります。

他に何もなければ、同じ同期オブジェクトでブロックできます。

Java には、このトリックを行う Object.wait() と Object.notify() もあります。

于 2013-08-14T09:43:09.287 に答える