2016-01-13 129 views
0

我有這段代碼:什麼是Threadpool的替代品?

public void GenerateImageAsync(Area area) 
    { 
     ThreadPool.QueueUserWorkItem(threading => 
     { 
      ready.Reset(); 
      GenerateImage(area); 
      ready.Set(); 
     }); 
    } 

你能告訴我怎樣才能改變它,或者使用線程池的替代方案?

+1

爲什麼你需要去改變它 - 問題是什麼? –

+0

是的,我想改變它。我想用一些不同的線程來代替線程池 – Giga

+4

爲什麼你想避免'ThreadPool'?那有什麼問題? –

回答

0

您可以使用一個任務,這將在這樣的線程池創建線程:

public void GenerateImageAsync(Area area) 
    { 
     Task.Run(() => { 
      ready.Reset(); 
      GenerateImage(area); 
      ready.Set(); 
     }); 
    } 

或實際的主題是這樣的:

public void GenerateImageAsync(Area area) 
    { 
     new Thread(() => { 
      ready.Reset(); 
      GenerateImage(area); 
      ready.Set(); 
     }).Start(); 
    } 
+0

他們中的任何一個如何取代ThreadPool?有線程和線程池之間的區別.http://stackoverflow.com/questions/230003/thread-vs-threadpool – lazy

+0

@lazy你是什麼意思*線程仍然不是一個託管線程?* –

+1

那麼一個新的線程是另一個線程池,我添加了任務,因爲我不確定OP是否意味着ThreadPool類或實際的線程池。 –