1:创建线程类,继承tthread类,
class GeoSortThread : public TThread
{
private:
//--------------------------------------------------------------------
Struct_VocGeoInfo *VGInfo;
TGeoServer_GeoInfo *GeoInfo;
//--------------------------------------------------------------------
//ServerSocket控件
TServerSocket *ServerSocket;
//Xml控件
//TXMLDocument *XMLDocument;
//http控件
//THTTPRIO *HTTPRIO;
//--------------------------------------------------------------------
//临界区
//TCriticalSection *Section;
//信号量
HANDLE hMutex;
//循环队列(包括5项:缓存区,单元指针,生产索引,消费索引,缓存区数量)
Struct_VocGeoInfo pg_buff[SIZE_OF_BUFFER];
//Struct_VocGeoInfo *pg_buff;
int in;
int out;
int count;
int processCount;
int ThreadIndex;
//--------------------------------------------------------------------
//临时OVInfo 包括SIZE_OF_TASK条VGInfo
Struct_VocGeoInfo OVGInfo[SIZE_OF_TASK];
int OVGInfoCount;
void __fastcall Paint();
protected:
void __fastcall Execute();
public:
//--------------------------------------------------------------------
//生产
bool IsIdled;
void __fastcall Put(Struct_VocGeoInfo *VGInfo,int ThreadIndex);
void __fastcall Release();
void __fastcall Acquire();