delphi 用线程显示主线程窗口然后挂起自己就会假死。怎么解决?
下面是我的程序functionMyThreadFunc(P:pointer):Longint;stdcall;vari:integer;beginforI:=0tofor...
下面是我的程序
function MyThreadFunc(P:pointer):Longint;stdcall;
var
i:integer;
begin
for I := 0 to form1.listview1.Items.Count - 1 do
begin
With form1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from main where 名字='''+form1.listview1.Items.Item[i].SubItems.Strings[1]+'''') ;
Open;
First;
if form1.ADOQuery1.eof then //如果数据库中没有当前的信息
Begin
form1.label1.Caption := '当前名字:'+form1.listview1.Items.Item[i].SubItems.Strings[1];
form1.panel1.Visible := true; //在panel1面板上修改相关资料并写入数据库
SuspendThread(form1.hThread);//程序运行到这一步就出现问题了,主线程仍然可以操作,响应鼠标事件,但是panel1就假死了
End;
end;
form1.getdirlist(form1.listview1.Items.Item[i].SubItems.Strings[1]);
end;
TerminateThread(form1.hThread,0); // 终止线程
end; 展开
function MyThreadFunc(P:pointer):Longint;stdcall;
var
i:integer;
begin
for I := 0 to form1.listview1.Items.Count - 1 do
begin
With form1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from main where 名字='''+form1.listview1.Items.Item[i].SubItems.Strings[1]+'''') ;
Open;
First;
if form1.ADOQuery1.eof then //如果数据库中没有当前的信息
Begin
form1.label1.Caption := '当前名字:'+form1.listview1.Items.Item[i].SubItems.Strings[1];
form1.panel1.Visible := true; //在panel1面板上修改相关资料并写入数据库
SuspendThread(form1.hThread);//程序运行到这一步就出现问题了,主线程仍然可以操作,响应鼠标事件,但是panel1就假死了
End;
end;
form1.getdirlist(form1.listview1.Items.Item[i].SubItems.Strings[1]);
end;
TerminateThread(form1.hThread,0); // 终止线程
end; 展开
2个回答
展开全部
var MyAccess: TAccessApplication;//要加入access FileName: WideString; //************************ var ADOConnection:TADOConnection; //这个语句一定要加入adoconnection控件 ,或者要加入uses adodb; ADOQuery:TADOQuery; temppath:string;//存放临时目录 tb:boolean;//检查文件是否存在 begin try //首先判断是否有这个数据库 tb:= fileexists(edit1.Text ); if tb then exit; //如果数据库存在就退出 MyAccess := TAccessApplication.Create(Self); // myaccess.CloseCurrentDatabase ;//close database engin FileName := edit1.Text ; //如果路径不存在,程序不会自动创建 MyAccess.NewCurrentDatabase(FileName); myaccess.CloseCurrentDatabase; MyAccess.Disconnect; MyAccess.Free; //以上建库完毕 ,下面开始创建表和字段
追问
你说的是什么啊,你知道我在问什么吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询