タグ

taskに関するni66lingのブックマーク (3)

  • Nine Works: Taskを使って非同期処理 5:処理の継続

    Taskを使って非同期処理 5:処理の継続 今回説明するのは非同期処理が終了した後に別の処理を続けて行う方法です。  Taskの処理が終了した後に続けて処理を行う際はContinueWithメソッドを使います。  以下のサンプルコードでは最初のTaskで"処理A"をContinueWithメソッドで処理Aの結果を受け取って"処理B"を行います。 ---- C# ------------------------------------------------------------------ using System.Threading; using System.Threading.Tasks; var task = Task<string>.Factory.StartNew(() => {     Thread.Sleep(500);  // 重たい処理のつもり     return

  • C# Parallel.For + Native C による高速化~その3:並列画像処理

    C# Parallel.For + Native C による高速化~その3:並列画像処理 準備ができたところで、C# と C# + Native Cでの画像処理でどのぐらい差が出るのか試してみます。 対象は、1つの画像に対して、ラプラシアンフィルターを適用するという、簡単な画像処理です。ラプラシアンフィルタとは空間2次微分を計算し、輪郭を検出するフィルタです。 ここでは、次のような 3x3 の8近傍フィルターを使います。 画像の取得と表示部分 画像の取得と表示部分は、C# の得意とする部分なので、特に困ることはないと思います。 WPFで、次のような画面をデザインします。 <Window x:Class="WritableBitmap.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x

  • C# + Native C による高速化~その2: タスク並列ライブラリ

    タスク並列ライブラリ(Task Parallel Library)の略。.NET Framework Version 4 の System.Threading 名前空間および System.Threading.Tasks 名前空間のAPI のセット。 タスク並列ライブラリ~データの並列処理: Parallel.ForEach 複数のデータに対して、次のようにforeach で処理を行うことができます。これは、シーケンシャル(順次処理)となります。 foreach (var item in sourceCollection) { Process(item); } この時 Process(item) が item に対して完全に独立している場合、Parallel.Foreach により、並列処理が可能になります。 Parallel.ForEach(sourceCollection, item

  • 1