victor你好,
我是一个初学者,想请教一个关于thread的问题。
我想在button1的onClick事件中CreateThread;并且,在新建的thread中执行计算和刷新form的功能;在button2的onClick事件中中止thread的执行。
基本上代码的思想是下面的样子的:
void __fastcall TftmFFT::btnAnaStartClick(TObject *Sender)
{
DWORD dwThreadId = 1;
hThread = CreateThread(NULL,0,(void *)CalcFFT,0,0,&dwThreadId);
}
void TftmFFT::CalcFFT()
{
for(int i=0;i<500;i++)
{
for(int j=0;j<1000;j++)
{
//doing calculate
//refresh form
AddChartData();
}
}
}
void TftmFFT::AddChartData()
{
this->Chart->AddSeries(...);
}
void __fastcall TftmFFT::btnAnaCancelClick(TObject *Sender)
{
ExitThread(hThread);
CloseHandle(hThread);
}
想问一下:在main form的onclick里面create出来的thread可以调用主画面上面的控件嘛?这样的代码是否可行?编译的时候一直通不过E2235 error。主要的目的是要能够cancel正在进行的计算。
万分感谢。
elena
--------------------next---------------------
阅读(1181) | 评论(0) | 转发(0) |