VC如何获得当前线程的ID
用CreateThread创建线程后,怎么在线程函数中获得当前线程的ID,。。。此外,我创建2个线程输出多行字符,希望出现的是交错的顺序,但偏偏出现的顺序是顺序执行两个函...
用CreateThread创建线程后,怎么在线程函数中获得当前线程的ID,。。。此外,我创建2个线程输出多行字符,希望出现的是交错的顺序,但偏偏出现的顺序是顺序执行两个函数的顺序,为什么?
图片: 展开
图片: 展开
2个回答
展开全部
获取当前进程的ID很简单,一种方法是调用GetCurrentThreadId()函数即可;
还有一处更简单的哈,就是在你创建进程的时候就知道了:如
m_hThread = ::CreateThread(NULL, 0, MyThreadProc, this, 0, &m_threadID);//最后一个参数就是线程ID
另外,你想出现的是交错的顺序也很简单,就是做好互斥工作就是了,在线程的相应位置调用WaitForSingleObject();不要忘了解锁即可,我是用SetEvent();最好后面加上Sleep(10);这样看到的效果就更明显了!
还有一处更简单的哈,就是在你创建进程的时候就知道了:如
m_hThread = ::CreateThread(NULL, 0, MyThreadProc, this, 0, &m_threadID);//最后一个参数就是线程ID
另外,你想出现的是交错的顺序也很简单,就是做好互斥工作就是了,在线程的相应位置调用WaitForSingleObject();不要忘了解锁即可,我是用SetEvent();最好后面加上Sleep(10);这样看到的效果就更明显了!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询