我只是想了解一些用C++编写的源代码。我有点熟悉
但是,对于C++,以下代码序列对我而言绝对是新的。一个猜测是
我在这里向内核ptest-> Run()注册了一些线程例程。可以吗?
static unsigned int __stdcall ThreadProc(void *lParameter)
{
CTest *ptest;
ptest= (Ctest *)lParameter;
ptest->Run();
return 0;
}
CTest::CTest(int n)
{
...
}
最佳答案
有点简化,但线程是一个函数,在本例中为ThreadProc。当线程启动时,该函数被调用,并且当函数退出时,线程死亡。
在这种情况下,有人用CreateThread,begin_thread或其他方法启动了一个线程,并传入了一个称为CTest的类的指针作为参数。然后,线程将其强制转换回CTest *(如您所见,该参数由CreateThread API作为更通用的void *传递),并在退出之前调用CTest::Run方法。
编辑:另外,除了“__stdcall”声明外,这不是Windows特有的。在所有操作系统上,C和C++中的线程或多或少都像这样工作。
关于c++ - C++新手问题:ThreadProc,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1156027/