class MyAlgorithmThread : public AlgorithmThread { public: MyAlgorithmThread(const MyAlgInput& input, int threadCount, int threadIndex, ThreadReporter& reporter) : AlgorithmThread(threadIndex, reporter) { // parse 'input' for 'threadIndex' into member data } // required by STL functions used in MultiThreadedAlgorithm MyAlgorithmThread& operator=(const MyAlgorithmThread& thread) { *this = thread; return *this; } // this function is called in the separate thread and does the real work void run(); private: // put per-thread information into member data here };