【发布时间】:2011-02-17 12:38:58
【问题描述】:
首先我制作了一个在 wxListCtrl 中显示表格的程序,它可以工作,但数据量有限.. 它显示了一个问题,例如:- 当我执行程序时。框架在一段时间后可见......但它有效 然后我转向使用 wxThread 现在一切都很好,现在当我执行程序框架时立即可见,因为我写了 Sleep(1000),所以它在 wxListCtrl 中一一添加一行,但它给出了意外的结果取决于有多少行在数据库中.. 我的代码是:-
# include "thread.h"
# include "login.h"
# include "sql.h"
# include <mysql.h>
class List_Ctrl_Data;
MyThread :: MyThread(login* login_obj)
{
this->temp = login_obj;
}
void *MyThread :: Entry()
{
int i=1,j,k=0 ;
while(i!=100)
{
long index=this->temp->data_list_control->InsertItem(i,wxT("amit"));
for(j=1;j<3;j++)
{
this->temp->data_list_control->SetItem(index,j,wxT("pathak"));
}
k++;
if(k==1)
{
k=10;
this->Sleep(1000);
}
i++;
}
}
这里 data_list_control 是 wxListCtrl 的对象,借助线程 i 在 wxListCtrl 内部填充值。 有些人告诉我,你在这里一次又一次地从线程入口敲框架控件(wxListCtrl), 这就是为什么框架被绞死的原因,您应该为此使用 wxPost 或 AddPendingRequest,我认为它不会起作用, 我试图向你解释我的问题,但你仍然想问任何问题,欢迎你..如果你能帮助我,对我来说会很重要
【问题讨论】: