タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

スレッドに関するmac10のブックマーク (3)

  • 非同期処理(C# によるプログラミング入門)

    概要 注意: 2010年10月時点での CTP (community technology preview)版を元にした記事になっています。 製品版までに変更の可能性があります。 (async や await というキーワードも変更される可能性あり。) Ver. 5.0 スレッドを使った非同期処理を行いたい動機としては、以下の2つが挙げられます。 非ブロッキング処理: I/O 待ちとかで UI スレッドをフリーズさせないようにする 並列処理: マルチコアを活かした並列処理でパフォーマンス向上 このうち、並列処理に関しては、Parallel クラスや Parallel LINQ で簡単に対応可能 (ラムダ式や LINQ を使えば、並列じゃない場合とほとんど変わらず書けます。 参考: 「[雑記] スレッド プールとタスク」)。 一方の、非ブロッキング処理は、今までは結構面倒だったものの、 as

    非同期処理(C# によるプログラミング入門)
  • 非同期タスク - タスクを使って非同期プログラミングを簡単に

    歴史的に見ると、IAsyncResult パターンは、非同期 API を実装する高パフォーマンスのアプローチとして .NET Framework 1.0 で導入されました。ところが、UI スレッドを操作する場合は別の作業が必要になるうえに、適切に実装しにくく、使用するのが困難でした。イベントベースのパターンは、IAsyncResult によって対処されていなかった UI の側面を容易にするため .NET Framework 2.0 で導入され、UI アプリケーションが 1 つの非同期アプリケーションを起動してそれを操作するというシナリオを中心に使用されています。 タスク パターン .NET Framework 4 では、非同期操作を表す方法として、新しい型、System.Threading.Tasks.Task が導入されました。タスクでは、次のように、CPU で実行される通常のコンピュー

    非同期タスク - タスクを使って非同期プログラミングを簡単に
  • 【C#】時間のかかる処理をバックグラウンドで実行するには?[2.0のみ、C#、VB] − @IT

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

  • 1