我在wxListCtrl中获取数据库表值(数据可能很大,所以我使用的是wxThread)子线程发送行到主线程和主线程填充它在wxListCtrl中,一切都是进展良好,但当我试图关闭框架时,它给了我意想不到的结果。在关闭按钮,我调用一个新的框架,有时它会打开并在一段时间了,我的代码是: -由于线程被误操作导致窗口挂起
if(thread_object_holder->IsAlive())
{
wxPuts(wxT("live"));
thread_object_holder->Pause();
wxMessageDialog *msg = new wxMessageDialog(this,wxT("You want to quit"), wxT("Quit Login Report") ,wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION);
if (msg->ShowModal() == wxID_YES)
{
thread_object_holder->Delete();
temp_back_frame *obj= new temp_back_frame();
this->Destroy();
obj->Show(true);
}
else
{
thread_object_holder->Resume();
}
}
else
{
wxPuts(wxT("dead"));
wxMessageDialog *msg = new wxMessageDialog(this,wxT("You want to quit"), wxT("Quit Login Report") ,wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION);
if (msg->ShowModal() == wxID_YES)
{
thread_object_holder->Delete();
temp_back_frame *obj= new temp_back_frame();
this->Destroy();
obj->Show(true);
}
}
仅有7个在表行,填充记录期间,如果我按下按钮,一切都很好,但一旦有7行放在ListCtrl {我认为现在线程将被破坏},我没有数据放到listctrl,我们按关闭按钮,然后有时新框架打开,一些时间框架挂起,我认为线程负责但这里我采取了适当的预防措施来处理线索,请告诉我,我错了。
一些时刻i得到的错误,如: - ass8-1-login_report:pthread_mutex_lock.c:312:__pthread_mutex_lock_full:断言'( - (E))= 3 || !强劲'失败。 – Arjun 2011-04-04 07:51:21