Jav*_*dro 5 user-interface mfc multithreading visual-c++
我有一个从应用程序中的不同线程调用的函数.我需要知道执行代码的线程是主线程(ui线程)还是工作线程.
有什么建议吗?
谢谢.
Shi*_*C G 13
如果您使用的是MFC应用程序,请使用以下代码.
if(GetCurrentThreadId() == AfxGetApp()->m_nThreadID)
{
//Main Thread
}
else
{
//Not Main Thread
}
Run Code Online (Sandbox Code Playgroud)
使用GetCurrentThread()或GetCurrentTreadId()并将其与主线程的已知HANDLE或id进行比较.
不能有多个UI线程吗?
当然可以,但只有一个主要的 ui线程.
好.但是,有没有办法从这段代码中知道主线程的HANDLE或ID?我的意思是像GetMainThread或GetMainThreadID.我不想修改应用程序的其他部分(如果可能).顺便说一句,谢谢你的回答.
对不起,我出去吃午饭,你已经得到了答案.但无论如何也不妨回复.GetCurrentThreadId()当然可以在执行主ui线程时使用,并缓存以供以后比较.在执行应用程序的某个地方,只有一个线程,例如在创建任何其他线程之前的WinMain()中.
干杯!