Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341348
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:07:33

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) |
给主人留下些什么吧!~~