2013-03-27 70 views
-6

我必須在c#中創建幾個執行圖遍歷函數的任務,現在我想要做的就是擁有兩個獨立的線程,它們將不同的源作爲該遍歷函數的參數並在任務本身中啓動。我有一個使用任務的想法,因爲我想讓4個任務以並行的方式工作,但讓他們使用兩個執行相同功能的線程?那可能嗎?我可以創建兩個線程並在c#中的任務中運行它們嗎?

所以,我要的是,task1包含thread1thread2 & task2包含thread3thread4 & task3包含thread5thread6

所有這些線程都執行相同的功能。有可能實現嗎?有沒有其他方法?

+1

爲什麼不應該可能? – Nolonar 2013-03-27 13:37:53

+0

只要嘗試一下,你會發現是否有可能。 – Tomtom 2013-03-27 13:39:11

+0

看到我通過給任務1函數創建了兩個線程來嘗試它。這兩個線程執行圖形遍歷功能。現在線程沒有執行該功能。所以現在我想我做的是錯的。 @Nolonar – 2013-03-28 02:47:10

回答

0
  1. 聲明一個類,你可以用它來傳遞參數給線程:
class ThreadParamsClass 
{ 
    internal int int1, int2; 

    internal ThreadParamsClass(int int1, int int2) 
    { 
     this.int1 = int1; 
     this.int2 = int2; 
    } 
} 
  1. 創建類的幾個實例,並啓動線程,傳遞參數對象到線程:
ThreadParamsClass[] ThreadParams = new ThreadParamsClass[6]; 
ThreadParams[0] = new ThreadParamsClass(1, 2); 
ThreadParams[1] = new ThreadParamsClass(3, 4); 
ThreadParams[2] = new ThreadParamsClass(5, 6); 
ThreadParams[3] = new ThreadParamsClass(7, 8); 
ThreadParams[4] = new ThreadParamsClass(9, 10); 
ThreadParams[5] = new ThreadParamsClass(11, 12); 
for (int i = 0; i < 6; i++) 
{ 
    Thread Thread1 = new Thread(new ParameterizedThreadStart(Function1)); 
    Thread1.Start(ThreadParams[i]); 
} 

void Function1(object Params) 
{ 
    ThreadParamsClass ThreadParams = (ThreadParamsClass)Params; 
    int result = ThreadParams.int1 + ThreadParams.int2; 
} 
+0

謝謝你的回覆,但這不是我想要做的。我希望每個任務創建兩個線程,並執行相同的圖形遍歷功能。幫我 !! – 2013-03-28 02:49:22

相關問題