专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++ Builder

请问,C++ Builder 提示“system error,code:1400,无效的窗口句柄”怎么解决?

发布时间:2011-06-28 13:43:15 文章来源:www.iduyao.cn 采编人员:星星草
请教,C++ Builder 提示“system error,code:1400,无效的窗口句柄”如何解决??
各位高手,请教一下,现在程序中添加一个线程,用来采集数据和更新数据库,更新Image,线程结束后,点击Button3执行Form3->Show();就会弹出“system error,code:1400,无效的窗口句柄”,但如果在执行结束前,点击过Button3执行Form3->Show();就不会出错,请问各位是什么问题呀?谢谢!

代码如下:
void __fastcall TForm_Main::Button3(TObject *Sender)
{
  Form3->Show();
}
__fastcall TRecordThread::TRecordThread(bool CreateSuspended)
  : TThread(CreateSuspended)
{
  //定义线程优先级
  Priority=tpHigher;

  FreeOnTerminate=false;
}
//自定义线程函数——TRecordThread
void __fastcall TRecordThread::Execute()
{
  cs->Acquire();

  while(Terminated==false)
  {
  //采集数据
  ……
  //更新数据库
  this->Synchronize(Record_Update);
  //更新显示Image
  this->Synchronize(Image_Update);
  if(finished)
  break;

  }//while(Terminated==false)

  cs->Release();  
}
//自定义线程函数——TRecordThread
void __fastcall TRecordThread::Image_Update()
{  
  //更新Image
  ……
   

//自定义线程函数——TRecordThread
void __fastcall TRecordThread::Record_Update()
{  
  //用AdoQuery Insert into更新Record
  ……
   
}

------解决方案--------------------
线程结束后,可能释放了某些资源。造成问题
------解决方案--------------------
该线程结束的时候,内核对象计数减为零所以句柄指向的内核对象不存在,句柄就无效了。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: