首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

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

2012-02-28 
请教,C++ Builder 提示“system error,code:1400,无效的窗口句柄”如何解决??各位高手,请教一下,现在程序中

请教,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
  ……
   
}

[解决办法]
线程结束后,可能释放了某些资源。造成问题
[解决办法]
该线程结束的时候,内核对象计数减为零所以句柄指向的内核对象不存在,句柄就无效了。

热点排行