2011-02-18 4 views
4

可能性の重複:英語ではないので
What's the difference between Invoke() and BeginInvoke()Control.Invoke()対Control.BeginInvoke()

まず第一に、私は私の悪い文法をお詫びしたいと思います私の母国語。

これが私の理解です:

Control.Invoke(delegated_method) // Executes on the thread wich the control was created on 
witch holds its handle ,typically this would be the main thread of a winform application . 

Control.BeginInvoke(delegated_method // Executes asynchronously on a threadPool Thread . 

MSDNによると、それは言う

は に非同期制御の 基になるハンドルが作成されたスレッドをデリゲートを実行します。

私の質問:

が、私はそれがスレッドプールと同じように、BeginInvokeメソッドは、この問題でメインスレッドを扱うことを理解し、それが「機会を得る」と、メインスレッドに委譲メソッドを実行するのですか?

もう1つ質問がありますが、 メインスレッドではなくコントロールを作成できますか? 誰かが私に例を挙げることができますか?

+0

http://stackoverflow.com/questions/229554/whats-the-difference-between-invoke-and-begininvoke – dzendras

+2

あなたの文法は、ネイティブ英語スピーカーの優れた大部分より優れています。しかし、あなたは戻っていくつかの質問への回答を受け入れる必要があります(あなたが思った答えの横にある緑のチェックマークを押す) –

答えて

1

はい、それを作成したUIスレッドのディスパッチャで実行されます。

バックグラウンドスレッドでコントロールを作成する場合、私はそれをアドバイスしません。さらに、あなたが働いている技術について言及していない。

関連する問題