2009-08-31 84 views
3

我正在使用Boost線程池。如何將Boost線程池從fifo轉換爲優先級?

我有這樣的結構:

class SimThreadPool 
{ 
    static SimThreadPool* getInstance(); 

    boost::threadpool::prio_pool& getThreadPool() { return mThreadPool; } 

    simTerrain::SimThreadPool::SimThreadPool() 
    : mThreadPool(boost::threadpool::fifo_pool(1)) 
    { 

    } 

    boost::threadpool::prio_pool mThreadPool; 
} 

當我需要一個線程,我這樣稱呼它:

SimThreadPool::getInstance()->getThreadPool().schedule(MyThread()); 

和它的作品。

現在的問題是:如何將此線程池從fifo轉換爲優先級?

我把我所有的fifo\_pool改爲prio\_pool,但是我無法處理這個 - 它沒有用。我有一些錯誤。

在這種情況下,我該如何使用prio_pool

我想我不得不使用prio_task_func而不是類,但我想重新使用我現有的算法來達到此目的。

+1

請提供錯誤信息。 – mikelong 2009-09-12 17:17:04

回答