私はさまざまなバックグラウンドアクションを実行するために余分なスレッドを作成しています。そのワーカースレッド内でWPFを使用する場合、そのスレッドのディスパッチャがメモリリークを防ぐために正常にシャットダウンされるようにする必要があります。 Dispatcherを使用する他の.NETコンポーネントはありますか?または、WPFはそれを使用する唯一の.NETコンポーネントですか?どの.NETコンポーネントがディスパッチャを使用していますか?
2
A
答えて
1
あなたの質問の音から、メインのUIスレッドから既存のスレッドをキャプチャして使用するのではなく、バックグラウンドスレッドにDispatcher
を作成しています。あなたはなぜこれをやっているのですか?あなたのバックグラウンドスレッドは、既存のDispatcher
を使用するだけで、UIスレッドがそのクリーンアップを処理できるようにする必要があります。
1
Dispatcherは、従来のクラスであるSynchronizationContextを内部的に使用し、クロススレッド操作のためにWindowsで使用されます。しかし、 "Dispatcher"はWPFにのみ関連しています。
関連する問題
- 1. COMコンポーネントから.NETコンポーネントを使用できますか?
- 2. .NET新しいディスパッチャを作成
- 3. ディスパッチャの使用?
- 4. OTP.NETはどのバージョンの.NETを使用していますか?
- 5. C#ディスパッチャの使用
- 6. VB6 COMコンポーネントを使用している.NET
- 7. .Net 4.0と.Net 4.5のタスクを使用していますか?
- 8. ディスパッチャを使用したSpring MVCサーブレットマッピング
- 9. ディスパッチャを使用したスパーク・メゾ・クラスタ・モード
- 10. コンポーネントでthis.sendAction()を使用していますか?
- 11. どのAndroidコンポーネントをいつ使用するかを決定しますか?
- 12. .NET AppUpdaterコンポーネントはアップデートをダウンロードしていませんか?
- 13. .NETのWindows PC用GISソフトウェアまたはコンポーネントがいいですか?
- 14. Akka 2のディスパッチャの違いと使用パターンは何ですか?
- 15. 誰も登録不要のCOMと.NETコンポーネントを正常に使用していますか?
- 16. ASP NET MVC 3 CodeFirst Projectはどのデータベースを使用していますか?
- 17. 単体テストでWPFディスパッチャを使用する正しい方法
- 18. 誰かがまだ.NET MVC3プロジェクトでMvcContribを使用していますか?
- 19. MVC3 + EF4.1コードまず、.NETメンバーを使用していますか?
- 20. .NetはまだADO.netを使用していますか?
- 21. .netのAlfrescoを使用していますか?
- 22. 誰も.NETのSystem.IO.IsolatedStorageを使用していますか?
- 23. WPF NotifyPropertyChangedsがディスパッチャにマーシャリングされていますか?
- 24. Windows ODBCデータソースと.Net System.Data.Odbc:どのドライバが使用されていますか?
- 25. 私は、NetBeansを使用しています全体のJTableコンポーネント
- 26. 私はDevExpress社のコンポーネントcontrols.Iを使用しています
- 27. COMコンポーネントを使用しようとしています
- 28. .NET 2.0の.NET 3.5機能を使用しています....それは動作していますか?
- 29. ブラウザがどのフォントを使用していてCSSを使用しているかを確認しますか?
- 30. GroovyFXを使用して新しいJavaFXコンポーネントを実装しますか?
背景スレッドは、WPFを使用してビジュアルツリーを設定し、そのビジュアルツリーをビットマップにレンダリングしてレポートを作成し、ディスクに保存します。私はそれがメモリをリークしていたことがわかり、WPFがディスパッチャを使用してメモリ管理を処理していることが判明しました。スレッドを終了する前にDispatcher.CurrentDispatcher.Run()を追加してシャットダウンすると、メモリリークが削除されます。 WCFなどの他の領域があるかどうか疑問に思っています。ディスパーザを使用しているため、潜在的なリークとして認識する必要があります。 –
実際には、スケジューリングとデータベースから関連データを取得することに基づいて、このようにして生成された多くのレポートを持つサービスです。したがって、メインのUIスレッドは必要ありません。 –