タグ

スレッドに関するpolyamidのブックマーク (2)

  • バックグラウンド処理を途中でキャンセルするには?[2.0のみ、C#、VB] - @IT

    バックグラウンド処理をキャンセル可能にするために、BackgroundWorkerコンポーネントのWorkerReportsProgressプロパティをtrueに設定しておく。 BackgroundWorkerコンポーネントのキャンセル処理 BackgroundWorkerコンポーネントにおけるキャンセル処理の流れは以下のようになる。 BackgroundWorkerコンポーネントのCancelAsyncメソッドを呼び出す。これにより、BackgroundWorkerコンポーネントのCancellationPendingプロパティがtrueに設定される。 重い処理を行っているDoWorkイベント・ハンドラでは、CancellationPendingプロパティがtrueに設定されていないか(=キャンセルが要求されていないか)を定期的にチェックし、trueになっていれば「e.Cancel」*1

  • 【C#】時間のかかる処理をバックグラウンドで実行するには?[2.0のみ、C#、VB] − @IT

    Windowsアプリケーションでは、時間のかかる処理(以下、重い処理)はアプリケーションのメインのスレッドとは別のスレッドで行わなければならない。これは重い処理がアプリケーションのユーザー・インターフェイス(UI)をフリーズさせてしまうからだ。 たとえユーザーがその処理の完了まで待つ必要があるとしても、その間にウィンドウの移動や最小化ができなければならないし、可能であれば処理の進ちょく状況をプログレス・バーなどで表示すべきである。 .NET Framework 2.0では、そのような処理を容易に実装するための「BackgroundWorkerコンポーネント」が新しく追加されている。これを使えばスレッドをほとんど意識することなく、重い処理を別スレッド(バックグラウンド)で実行させることができる。 稿では、BackgroundWorkerコンポーネントを利用し、進ちょく状況を表示しながら、重

  • 1