2009-08-31 39 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

回答