我有下面的代碼,有誰可以請澄清我的疑問。重新實例化線程
public static void Main() {
Thread thread = new Thread(Display);
thread.Start();
Thread.Sleep(5000);
// Throws exception, thread is terminated, cannot be restarted.
thread.Start()
}
public static void Display() {
}
這似乎是爲了重新啓動線程我不得不再次實例化線程。這是否意味着我正在創建一個新線程?如果我繼續創建100次重新注入,是否會創建100個線程並導致性能問題?
你可能想排列'Display',以便它被線程池處理而不是手動創建一個線程。 – CodesInChaos 2011-04-11 12:21:03
你究竟在做什麼?通常情況下,通過讓線程保持空閒狀態來阻止線程創建開銷,然後在進行更多工作時再次啓動它們。但是,真的,你的實際問題是什麼? – 2011-04-11 12:21:38
線程和線程之間有區別。在上面的代碼中,您正在啓動線程「線程」兩次。您調用的Sleep方法不會調用您已啓動的線程,但應用程序主線程 – reggie 2011-04-11 12:24:45