WPF と UserControl を使用してコーディングされたアプリケーションがあります。プログラムの起動時に読み込まれるユーザー コントロール タブと一緒に親ウィンドウをリンクしました。
そこから、対応する UserControl を開くタブを選択できます。一部の UserControls にはスレッドを持つバックグラウンド ワーカーがあり、一部は純粋にデータのキャプチャに使用され、その他はデータ出力またはレポートの生成に使用されます。各タブが呼び出されたクラスを使用して閉じClossableItems
られると、閉じるボタンを選択したり、MainWindow にタブを表示したりできます。
私たちが直面している問題は、UserControl が閉じられたときに、リソースがシステムに解放されないことです。バックグラウンド ワーカーと、UserControl を表示するために必要なリソース。UserControl を強制的に閉じる方法をグーグル検索しましたが、役に立ちませんでした。私が試したこと:
Background worker:
bwDataCollector.WorkerSupportsCancellation = true;
bwDataCollector.CancellationPending;
bwDataCollector.CancelAsync();
User Control:
this.Dispatcher.ShutdownStarted += Dispatcher_ShutdownStarted
private void Dispatcher_ShutdownStarted(object sender, EventArgs e)
{
}
基本的に、リソースも解放する onDestroy などのメソッドから呼び出されたこの UserControls を閉じる方法を知っている場合、私は何を求めていますか?
また、この同じ方法を使用してバックグラウンドのワーカーをシャットダウンする方法はありますか?