Control.InvokeRequired プロパティとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > Control.InvokeRequired プロパティの意味・解説 

Control.InvokeRequired プロパティ

呼び出し元がコントロール作成されスレッド異なスレッド上にあるため、コントロールに対してメソッド呼び出し実行するときに、呼び出し元で invoke メソッド呼び出す必要があるかどうかを示す値を取得します

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

解説解説

Windows フォーム内のコントロールは、特定のスレッドバインドされているため、スレッド セーフではありません。したがって異なスレッドからコントロールメソッド呼び出す場合は、コントロールinvoke メソッド使用して適切なスレッドへの呼び出しマーシャリングする必要があります。このプロパティ使用すると、invoke メソッド呼び出す必要があるかどうか確認できるため、どのスレッドコントロール所有しているかわからない場合役立ちます

メモメモ

InvokeRequired プロパティ以外に、呼び出しに対してスレッド セーフである 4 つメソッドInvoke、BeginInvoke、EndInvoke、および CreateGraphics がコントロールありますその他のすべてのメソッド呼び出しについては、異なスレッドから呼び出すときは、これらの invoke メソッド1 つ使用する必要があります

コントロールハンドルがまだ存在しない場合InvokeRequired メソッドコントロールの親チェイン検索しウィンドウ ハンドルを持つコントロールまたはフォームを見つけます適切なハンドルが見つからない場合InvokeRequired メソッドfalse返します

つまり、Invoke必須ではない (同じスレッド呼び出しが行われる) 場合、またはコントロール異なスレッド作成されるが、コントロールハンドルがまだ作成されていない場合InvokeRequiredfalse返す可能性あります

コントロールハンドルがまだ作成されていない場合コントロールプロパティメソッド、またはイベント呼び出さないください。これにより、コントロールハンドルバックグラウンド スレッド作成されメッセージ ポンプのないスレッド上でコントロール分離されて、アプリケーション不安定になる可能性あります

バックグラウンド スレッドInvokeRequiredfalse返す場合、IsHandleCreated の値を確認する方法でも、この状態が発生するのを回避できますコントロール ハンドルがまだ作成されていない場合は、コントロール ハンドル作成されるまで待機してから、Invoke または BeginInvoke呼び出す必要があります通常、これが発生するのは、アプリケーションメイン フォーム表示される前または Application.Run呼び出される前にメイン フォームコンストラクタバックグラウンド スレッド作成される場合です (たとえば、Application.Run(new MainForm()))。

1 つ解決策としては、フォームハンドル作成されるまで待機してから、バックグラウンド スレッド開始しますHandle プロパティ呼び出してハンドル強制的に作成するか、Load イベントバックグラウンド プロセス開始するまで待機します。

より優れた解決策としては、スレッド間のマーシャリングではなく、SynchronizationContext によって返される SynchronizationContext使用します

マルチスレッド処理されWindows フォーム コントロール詳細については、「方法 : バックグラウンド スレッド使用してファイル検索する」を参照してください

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Control クラス
Control メンバ
System.Windows.Forms 名前空間
Invoke
InvokeGotFocus
InvokeLostFocus
InvokeOnClick
InvokePaint
InvokePaintBackground


このページでは「.NET Framework クラス ライブラリ リファレンス」からControl.InvokeRequired プロパティを検索した結果を表示しています。
Weblioに収録されているすべての辞書からControl.InvokeRequired プロパティを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からControl.InvokeRequired プロパティ を検索

英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

Control.InvokeRequired プロパティのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Control.InvokeRequired プロパティのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS