我有以下:奇怪C++線程功能調用
class DThread
{
virtual void run()=0;
_beginthreadex(NULL,0,tfunc,this,0,&m_UIThreadID); // class itself being passed as param to thread function...
static unsigned int __stdcall tfunc(void* thisptr)
{
static_cast<DThread*>(thisptr)->run();
return 0;
}
//other stuff
}
的運行功能由派生類中實現。
爲什麼在線程中被調用的函數被通過鑄造this
指針調用?這是好的做法嗎?
不能直接調用嗎?
需要運行的實際功能在派生類中。
我的問題是
你的問題是...? – Anthony 2010-05-17 12:22:45
爲什麼在線程中調用的函數是通過強制轉換這個指針來調用的?這是好的做法嗎? 不能直接調用嗎? – 2010-05-17 12:23:26
靜態成員函數中沒有「this」。 – eemz 2010-05-17 12:38:23