现在我有一个线程处理函数:
DWORD WINAPI ThreadProc(LPVOID lpParameter)
{
static int i=0;
while(TRUE)
{
i++;
}
}现在创建两个线程,第一个线程运行时可能对 i的值作了修改,第二个线程运行实现要求i必须时原始值,即是0,(两个线程不是同时创建的),请问怎么实现?是不是有线程内的静态变量?
DWORD WINAPI ThreadProc(LPVOID lpParameter)
{
static int i=0;
while(TRUE)
{
i++;
}
}现在创建两个线程,第一个线程运行时可能对 i的值作了修改,第二个线程运行实现要求i必须时原始值,即是0,(两个线程不是同时创建的),请问怎么实现?是不是有线程内的静态变量?
再把App的指针传给线程
lpParameter->i;当然也可以用全部变量
还有要注意线程同步
struct THREAD_DATA
{
long ..
DWORD ....
LPVOID* lplp;
...};
THREAD_DATA* pData = new THREAD_DATA;
// 初始化结构
pData->... AfxBeginThread(ThreadFnc, (LPVOID) pData);..
DWORD WINAPI ThreadProc(LPVOID lp)
{
THREAD_DATA* pData = (THREAD_DATA*)lp; ...
while(pData->...)
{
}
return 0;
}