今朝私は同僚の奇妙なコードを見ました。 winformsアプリケーションでは、Mainform全体が参照としてスレッドに渡されました。 フォームからメソッドを呼び出すためにこれを行いました。 UIとやりとりするものはありません。単純な計算方法です。 私はこれがベストプラクティスではないと確信していますが、私は何か不思議です。私がメインフォームからスレッド内からメソッドを呼び出すと、これらのメソッドはまだマルチスレッドとして処理されていますか?あるいは、彼らはメインフォームの中を走っていますか? スレッドからMainfromからメソッドを呼び出すと、UIスレッドが影響を受けますか?WinFormsマルチスレッドのシナリオに関する質問
2
A
答えて
5
異なるスレッドから呼び出されたフォームの関数は、それらを呼び出すスレッド上で実行され、GUIスレッドには影響しません。副作用として、これは、GUIと対話する関数を呼び出すと例外が発生することを意味します。
GUIスレッドで呼び出す場合は、最も簡単なのはControl.Invoke(...)
です。これにより、渡すデリゲートがGUIスレッド上で実行され、GUIのやりとりが可能になります。
関連する問題
- 1. WinFormsパフォーマンスに関する質問
- 2. WinFormsマルチスレッドの問題
- 3. pythonでマルチスレッドのアプローチに関するアーキテクチャの質問
- 4. WinForms DataGridView質問
- 5. 目的C、Aタブバーとマルチスレッドに関する質問
- 6. VB.NET WinForms ListView質問
- 7. C#Winforms DataTableAdapterデータバインディングの質問
- 8. Java - マルチスレッドとファイル質問
- 9. マルチスレッド理論的シナリオ
- 10. コレクションのマルチスレッドに関する問題
- 11. .NET WinFormsのコンボボックスのBindingSourceとデータバインディング質問
- 12. フラッシュに関する質問
- 13. インデックスに関する質問
- 14. dbms_stats.gather_table_statsに関する質問
- 15. リフレクションパッケージに関する質問
- 16. nthに関する質問
- 17. initWithNibNameに関する質問
- 18. タブバーコントローラに関する質問
- 19. データベースに関する質問
- 20. CCSpriteSheetに関する質問
- 21. Msbuildに関する質問
- 22. インテントサービスに関する質問
- 23. BSplineに関する質問
- 24. データベースに関する質問
- 25. ModelMultipleChoiceFieldに関する質問
- 26. Erlangに関する質問
- 27. loadNibNamedに関する質問:
- 28. データバインディングに関する質問
- 29. コンビナトリアルに関する質問
- 30. APIに関する質問
私は知っています!知っている!私ではありませんでした! – TalkingCode