2

VB6以降、C#でメソッドDoEvents()を使用することはめったにありません。

同じ目的で同じ機能を使う必要があります

私は人々がこの関数( Application.DoEventsメソッド)を使用していることに気づきました:

Application.DoEvents()

しかし、これはWindowsフォームに適しています。

現在、WPFを使用しています。

WPFにも同様の方法がありますか?

または多分私はもうこの方法を使うべきではありませんか?

ありがとう。

4

1 に答える 1

5

または多分私はもうこの方法を使うべきではありませんか?

これ。

基本的に、の使用は、Application.DoEvents()ほとんどの場合、UIアクセスが必要なUIスレッドにコールバックして、別のスレッドで実行する必要がある長時間実行タスクがあることを示します。

Application.DoEvents()基本的に、人々が物事を適切に行うために時間をかけたくないときに使用するハックです-少なくともほとんどの場合。

使用している言語/フレームワークのバージョン、および長時間実行タスクの構成に応じて、UIと対話する長時間実行タスクを作成するさまざまな方法があります。考慮すべきオプション:

  • 新しいスレッドを明示的に作成する
  • スレッドプールを明示的に使用する
  • 使用するBackgroundWorker
  • タスク並列ライブラリ(TPL)の使用-.NET4以降が必要
  • 非同期APIの使用。これは.NET4.5/ C#5の時点ではるかに簡単です。
于 2013-01-20T09:19:07.823 に答える