[C#]Invokeの引数の使い方とは?InvokeRequiredプロパティ

公開日時:   更新日時:
[C#]Invokeの引数の使い方とは?InvokeRequiredプロパティ
基本情報技術者試験の試験対策はこちら>>

SE
Invokeの引数の使い方を教えてください。

PM
Invokeの引数の詳しい使い方を紹介します。

[C#]Invokeの引数の使い方とは?


今回は、C#でのInvokeの使い方について説明します。Invokeを使いたいケース、Invokeを使わずに別スレッドからコントロールを操作する間違った例、Invokeや引数の使い方、InvokeRequiredプロパティについて紹介します。

C#でのInvokeの使い方に興味のある方はぜひご覧ください。

Invokeを使いたいケース

C#のWindowsフォームからスレッドを作成した場合、そのスレッド(別スレッド)からコントロールを操作したいことがありますが、別スレッドから操作することはできません。Invokeを使用すると、別スレッドからコントロールを操作できるようになります。以降の章でInvokeについて紹介します。

Invokeを使わずに別スレッドからコントロールを操作する

C#において、Invokeを使わずに別スレッドからコントロールを操作する間違った例を紹介します。実際のソースコードを見てみましょう。

「UI thread」ボタンをクリックすると、labelが「UI thread」になります。「Other thread」ボタンをクリックすると、InvalidOperationExceptionが発生します。C#では、別スレッドからコントロールを操作することはできません。

Invokeの使い方

C#でのInvokeや引数の使い方について紹介します。実際のソースコードを見てみましょう。

「UI thread」ボタンをクリックすると、labelが「UI thread」になります。「Other thread」ボタンをクリックすると、labelが「Other thread」になります。

このようにC#では、Invokeを使うことで、別スレッドからコントロールを操作できます。しかし、label更新のためだけにOnUpdateTextメソッドが存在している状態です。

InvokeRequiredプロパティ

C#でのInvokeRequiredプロパティの使い方を紹介します。labelを更新するOnUpdateTextメソッドをまとめ、別スレッドから呼び出された場合はInvokeで処理します。実際のソースコードを見てみましょう。

「UI thread」ボタンをクリックすると、labelが「UI thread」になります。「Other thread」ボタンをクリックすると、labelが「Other thread」になります。

SE
C#でのInvokeがわかりました。

PM
C#でのInvokeの間違った例なども紹介しました。Invokeの知識を深めて実際にコードを書いてみましょう。

まとめ

いかがでしたでしょうか。C#でのInvokeの使い方について説明しました。Invokeを使いたいケース、Invokeを使わずに別スレッドからコントロールを操作する間違った例、Invokeや引数の使い方、InvokeRequiredプロパティについて紹介しました。

ぜひご自身でC#のソースコードを書いて、理解を深めてください。


FEnetへの登録は左下のチャットが便利です 経験者優遇! 最短10秒!

.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags