5

Dispatcher.Invoke を呼び出すときに、呼び出し元のスレッドは、ディスパッチャーが操作を完了するまで待機するかどうか疑問に思っていました...?

例えば:

new Thread(() =>
{
   string x = "Yes.";
   // Invoke the dispatcher.
   Dispatcher.Invoke((Action)delegate()
   {
      // Get the string off a UI element which contains the text, "No."
      x = textBox.Text;
   });
   // Is x either ("Yes" or "No") here, or always "No"?
}).Start();
4

1 に答える 1

9

ブロックするようです:)

こちらをご覧ください: Dispatcher.Invoke from a new thread is locked my UI

ここにいくつかの知恵があります:

Invoke は同期で、BeginInvoke は非同期です。操作は、指定された DispatcherPriority で Dispatcher のイベント キューに追加されます。

于 2013-11-14T02:24:53.887 に答える