My Project
|
00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 #pragma once 00029 #include "Define.h" 00030 #include <vector> 00031 #include "Thread.h" 00032 00033 namespace SallyAPI 00034 { 00035 namespace System 00036 { 00045 00046 class DLL_API_SALLY CSmartThreadPool 00047 : public SallyAPI::System::CThread 00048 { 00049 private: 00050 std::vector<SallyAPI::System::CThread*> m_vThreadListNew; 00051 std::vector<SallyAPI::System::CThread*> m_vThreadListRunning; 00052 int m_iConcurrentCount; 00053 bool m_bAutoDelete; 00054 00055 void StartNext(); 00056 00057 virtual void RunEx(); 00058 public: 00059 CSmartThreadPool(); 00060 ~CSmartThreadPool(); 00061 00062 void AddThread(SallyAPI::System::CThread* newThread); 00063 void SetConcurrentCount(int count); 00064 void SetAutoDelete(bool autoDelete); 00065 }; 00066 } 00067 }