2

如果有人可以帮助我,我会很高兴。我自己是 C++ Builder 的新手,从未在 C++ 中使用过线程。

我在 c++ builder 中有一个表单,我想线程化,这样它就不会崩溃。目前,表单在完成应用程序的后台进程之前不会加载。

4

1 回答 1

4

在 C++ Builder 中,您应该添加一个线程对象(右键单击“project.exe”,添加新的,其他。它位于 C++ Builder 文件夹中)。然后您需要添加标题包含并实例化对象。

如果你太菜鸟不会处理对象,你可以简单地使用带有函数的 CreateThread 函数。也许这不是最好的,但如果你没有经验,这很容易。

TForm1 *Form1;
unsigned long __stdcall my_thread_func(void *args);

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner){
    CreateThread(NULL,0,&my_thread_func,NULL,0,NULL); //create thread in form constructor
}
//---------------------------------------------------------------------------
//  Write a function like this
unsigned long __stdcall my_thread_func(void *args){
Sleep(5000);
Form1->Caption = L"Done!!";
}
于 2012-10-25T01:25:45.833 回答