5050


ウインドウを閉じてもマルチスレッドの動作が終了しないという事態に悩んでいます。  
現在のソースは、  
Aクラス・Bクラス・Cクラスがあり、AクラスからマルチスレッドでB・Cクラスを呼び出し実行しています。  
（Aクラス・Bクラス・CクラスはCSファイルで分けています。）  
ウインドウは一つだけしか表示しておらず、そのウインドウの閉じるボタンを押下すると、  
アプリケーションが終了すると考えていました。  
しかし、B・Cクラスの処理はウインドウを閉じた後も動作し続けています。

ウインドウの閉じるボタンを押下したと同時に全ての処理を終了したいのですが、  
windowのclosingイベント内でB・Cクラスの処理を終了させる方法しかないのでしょうか？  
他に良い案があれば教えていただきたいです。


CC BY-SA 3.0
2015-01-22T03:29:48.620
5033
2015-01-22T05:15:27.047
7626
question
c# wpf
C# - ウインドウを閉じてもマルチスレッドの動作が終了しない。


ウィンドウの開き方に依存します。WPFアプリケーションプロジェクトであれば既定でウィンドウの終了時にアプリケーションも終了します。  
App.xamlの[Application.ShutdownModeプロパティ](https://msdn.microsoft.com/ja-
jp/library/system.windows.application.shutdownmode\(v=vs.110\).aspx)で制御できます。


CC BY-SA 3.0
2015-01-22T03:49:20.107
5039
2015-01-22T03:49:20.107
4236
5033
answer


ThreadオブジェクトのIsBackgroundプロパティがfalseになっている可能性があります。  
ワーカーとして使う場合はStartメソッドを呼び出す前にtrueをセットしておく必要があります。


CC BY-SA 3.0
2015-01-22T05:15:27.047
5050
2015-01-22T05:15:27.047
3277
5033
answer