C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 48 を表示中)
■26130 / )  Re[1]: C# Windowsサービス、スレッド、デストラクタについて
□投稿者/ aetos(旧シャノン) (13回)-(2008/10/02(Thu) 14:28:42)
No26129 (直江兼続 さん) に返信
> サービスをスタートさせるタイミングで5つのスレッドを起動させます。
> スレッド内では常に監視の処理を行っている状態のまま、
> サービスで停止を行う際、スレッド内に設けてあるデストラクタを起動させ、
> かつスレッド自体のインスタンスも破棄したいのですが、
> 何かうまいやり方はありますでしょうか?

スレッドを停止させるのなら、Client1 クラスの外部から isContinue を false にしてやればいいでしょう。
そのためには、isContinue は Client1 のメンバ変数にして、Service1 側で Client1 の配列を持っておく必要があるでしょう。

デストラクタは無理です。というか、C# にデストラクタというものはありません。
~Client1 はファイナライザというもので、インスタンスがガベージコレクションによって回収されるときに呼ばれるものです。そのタイミングは制御できません。
クラスに対して何か後始末を行う必要があるのなら、IDisposable インターフェイスを実装して、その Dispose を呼んでやりましょう。
この辺は注意点とか書き始めると長〜くなるので割愛します。IDisposable で検索して調べてみてください。
返信 編集キー/


管理者用

- Child Tree -