2017-12-29 20 views
-1

私は並列タスクを作るために必要なソフトウェアを開発しています。ここに私のtask1例えば されています:Cで並列タスクを実行

Task t1 = new Task(()=> 
     { 
      //Do Some Codes 
     } 
     ); 

そして、私はtask1と同じコードを持つ複数のタスクがあります。

Task t2 = new Task(()=> 
     { 
      //Do task1 codes 
     } 
     ); 
Task t3 = new Task(()=> 
      { 
       //Do task1 codes 
      } 
      ); 
t1.start(); 
t2.start(); 
t3.start(); 

を、私は、これらのタスクの動作をチェックして行うことができるように、私はまた、タイマーを持っていますプロセスはより速くなります。しかし、それは変わらず、彼らは一つの仕事と同じ時間を持っています。

ここで、どのようにして並列タスクを実行してより速い結果を得ることができるかを知りたいと思います。

すべてのヘルプはあなたがあなたのメソッドを呼び出すか、非同期メソッドを呼び出すための「マルチスレッド」を使用しようとすることができ

+0

に各機能を実行していますか? 「タスク」は非同期に実行される単一の操作です –

+2

[タスクを並行して実行する](https://stackoverflow.com/questions/34375696/executing-tasks-in-parallel) – Greggz

+1

の可能な複製は、非同期機能 –

答えて

0

のは、次の2つの機能を持っていて、実行したいとしましょうそれらは並行している。

1:私はあなたがそれを行うことができます2つの方法があると思います

private void Function1() 
{ 
    //do work 
} 

private void Function2() 
{ 
    //do work 
} 

private void RunParallel() 
{ 
    Parallel.Invoke(Function1, Function2); 
} 

2 Library-タスクの並列を使用して:あなたは平行何を意味する別のthreads-

private void Function1() 
{ 
    //do work 
} 

private void Function2() 
{ 
    //do work 
} 

private void RunParallel() 
{ 
    ThreadStart ts1 = new ThreadStart(Function1); 
    ThreadStart ts2 = new ThreadStart(Function2); 

    Thread t1 = new Thread(ts1); 
    Thread t2 = new Thread(ts2); 

    t1.Start(); 
    t2.Start(); 
} 
関連する問題