2011-12-22 7 views
1

私は、メソッドが他のスレッドで呼び出されるようにスケジュールされている場合、対象スレッドで実行されますか?BGスレッドからメインスレッドで呼び出されたメソッドは、イベント呼び出しリストの途中で実行できますか?

たとえば、メインスレッドがイベント呼び出しリストから関数を呼び出し、イベント呼び出しリストメソッドのどこかで他のスレッドのメソッド(リストの一部ではない)が実行されている状況がありますか?

更新イベントの呼び出し中にオブジェクトが変更されないようにするには、すべての変更が単一スレッドで行われていても、Busyプロパティを使用する必要があります。私のスレッドでこのイベントの呼び出し中にこのオブジェクトを変更しますか?

答えて

1

Dispatcherで実行するアクションのキューがあり、別のスレッドから別のスレッド(BeginInvoke)を実行しようとしているとします。その場合、アクションはディスパッチャキューに追加されます(MSDNによると、以前に保留中のアクションが完了した後に実際に実行されることを暗示します)。

には優先度を指定するためのオーバーロードがあるため、あとでキューイングされたアクションが優先度の低いアクションが実行される可能性がありますそれ。

関連する問題