0
我開發了一個多線程應用程序,它在循環內部啓動線程。關閉線程c#.net
我是否需要擔心線程的關閉/終止或它會自動關閉。
我正在每一秒創建新線程,並且它正在連續運行,如下所示。
Run()方法正在通過windows服務進行調用。
public void Run(int count)
{
for(i=count i<count ;i++)
{
ThreadTest t=new ThreadTest();
Thread newThread = new Thread(t.DoWork);
newThread.Start();
}
}
Class ThreadTest
{
Public void DoWork()
{
// do some calculation and update database fields.
}
}
只是一個評論:像這樣啓動線程通常是一個壞主意,因爲每個新線程都需要花費大量開銷。如果可能的話,使用線程池來分攤線程管理的成本。 –
我推薦使用ThreadPool。 Brian提到手動線程有相當大的開銷。包括每次獲得分配的1MB堆棧。線程池將彙集未使用的線程並重用它們,而無需在需要新線程時重新分配它們。 –
@BradleyUffner但在線程池線程上運行我需要使用ThreadPool.QueueUserWorkItem並且它不會立即啓動線程可能會有1/2秒的延遲。我需要儘快開始線程。 – FatalError