1

私は自分のアプリケーションでいくつかのスレッドを開始します

  this.Thread = new Thread(() =>
  {
      System.Windows.Threading.Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() =>
      {
         ...
         ...

      }));
      System.Windows.Threading.Dispatcher.Run();
                           }) { IsBackground = true, Name = Constants.SPECIAL_UI_THREAD_NAME};
  this.Thread.SetApartmentState(ApartmentState.STA);
  this.Thread.CurrentCulture = Thread.CurrentThread.CurrentCulture;
  this.Thread.CurrentUICulture = Thread.CurrentThread.CurrentUICulture;
  this.Thread.Start();

それらには、生成されて表示されるすべてのウィンドウがあります。さて、メインスレッドで使用すると

アプリケーション.現在の.Windows

追加スレッドのウィンドウが表示されません。

アプリケーションのすべてのスレッドのすべてのウィンドウを取得するにはどうすればよいですか?

4

1 に答える 1

0

アプリケーションのメイン スレッド以外のスレッドでウィンドウを作成しないでください。代わりに、すべてのウィンドウをメイン アプリ スレッドで作成し、他のスレッド (タスク並列ライブラリなど) を使用して非同期に処理し、メイン アプリケーションのスレッド (したがって UI) の応答性を維持します。

于 2012-04-22T10:27:29.090 に答える