2016-01-13 120 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类或实际的线程池。 –

相关问题