考慮下面的程序它是多任務處理嗎?
myThread = new Thread(
new ThreadStart(
delegate
{
Method1();
Method2();
}
)
);
難道2個線程越來越稱爲平行(多任務)或單個線程順序調用方法?
這很緊急。
考慮下面的程序它是多任務處理嗎?
myThread = new Thread(
new ThreadStart(
delegate
{
Method1();
Method2();
}
)
);
難道2個線程越來越稱爲平行(多任務)或單個線程順序調用方法?
這很緊急。
這是一個單線程。
Method2()
在Method1()
結束前不會被調用。
如果你想Method1()
和Method2()
是每一個單獨的線程,你可以這樣做:
myThread1 = new Thread(new ThreadStart(Method1));
myThread2 = new Thread(new ThreadStart(Method2));
,並開始他們:
myThread1.Start();
myThread2.Start();
現在既可以同時運行。
有用的資源:
難道2個線程越來越 平行叫(多任務)
你可以憑經驗檢查:申報了methodA Method1
和Method2
這樣:
public void Method1() {
for (int i = 0; i < 10; i++) {
System.Console.WriteLine ("Method1: {0}", i);
Thread.Sleep (2000); // 2 seconds
}
}
public void Method2() {
for (int i = 0; i < 10; i++) {
System.Console.WriteLine ("Method2: {0}", i);
Thread.Sleep (2000); // 2 seconds
}
}
然後看看它們是否按順序或並行執行。
或者單個線程按順序調用 方法?
您可以通過分析方式檢查它,例如。你創建了多少個Thread
對象?你傳遞給創建線程的方法是什麼?
您只創建一個線程對象,這個線程來執行這個匿名方法:
delegate {
Method1();
Method2();
}
該匿名方法,因爲可以清楚地看到,將執行Method1
,然後Method2
。
C#3:創建並啓動單獨的線程。要等待它們完成,請在它們的全部上調用Thread.Join。 ()=> Method1(),()=> Method2());方法2()方法2()方法2()方法2()
用於多任務處理的手段(c#3.0)我需要做thread1 = Thread(new ThreadStart(Method1)); thread2 = Thread(new ThreadStart(Method2));然後thread1.join(); thread2.join(); – Newbie 2010-06-08 07:41:49
是的,這是正確的。 – 2015-02-26 18:24:18
關於基本理解+「緊急」的問題 - 這是一種考試問題嗎? – 2010-06-08 07:16:50
@Konrad,我們是不是應該加一個'urgent'標籤?:) – bakkal 2010-06-08 07:55:32
@Bakkal:好主意。任何具有該標籤的問題都會自動隱藏在起始頁面上。 ;-) – 2010-06-08 08:00:04