下面代码 为什么会卡主界面 THREAD不是线程类么type
Scaner = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
procedure Scaner.Execute;
var
i:Integer;
begin
for i := 0 to 100 do begin
Sleep(100);
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
var
s:Tscan;
begin
s:=Tscan.Create;
s.Execute;
end;这样启动线程 为什么会卡主程序啊多线程
Scaner = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
procedure Scaner.Execute;
var
i:Integer;
begin
for i := 0 to 100 do begin
Sleep(100);
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
var
s:Tscan;
begin
s:=Tscan.Create;
s.Execute;
end;这样启动线程 为什么会卡主程序啊多线程
解决方案 »
- delphi生成二维码
- 江湖救急
- 如何清空edit
- 如何让TListView列自动适应TListView的宽度和高度
- 为何select * from course_plan where course_plan_id='+strtoint('str')这个有问题
- 如果获取DLL中的字符串变量
- Beep怎么没有声音?
- 我编的套子程序完事了,但还有些小问题。请教
- 怎样解决两幅图片的比较问题,用像素点比较!
- berlin 的rest控件好像有问题。 报错invalid encoding name
- 一个简单的语法,放在线程中程序就崩溃,放在BUTTON下就没问题,有代码
- Remobjects如何使用线程池呀?
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TScaner = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end; TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
s: TScaner;
begin
s := TScaner.Create(False);
end;{ Scaner }procedure TScaner.Execute;
var
i: Integer;
begin
Self.FreeOnTerminate := True;
for i := 0 to 100 do
begin
Sleep(100);
end;
end;end.
是的!
s := TScaner.Create(False);
s1 := TScaner.Create(False);
s2 := TScaner.Create(False);
这样?好像不太好管理
能不能用数组的方法这样创建
var
i:Integer;
begin
getinfo(Self.user,Self.pass,Self.id);
end;
procedure TForm1.Button4Click(Sender: TObject);
var
s:array of tScaner;
i:Integer;
begin
for i := 0 to 5 do
begin s[i].user:= form1.bsSkinListView1.Items[i].Caption;//我这样写 程序在这一行都报错误,LISTVIEW有赋值的 s[i].pass:=bsSkinListView1.Items[i].SubItems.Strings[0];
s[i].id:=i;
s[i]:=tScaner.Create(false);
end;
procedure TForm1.Button4Click(Sender: TObject);
var
s:array of tScaner;
i:Integer;
begin
for i := 0 to 5 do
begin s[i].user:= form1.bsSkinListView1.Items[i].Caption;//我这样写 程序在这一行都报错误,LISTVIEW有赋值的 s[i].pass:=bsSkinListView1.Items[i].SubItems.Strings[0];
s[i].id:=i;
s[i]:=tScaner.Create(false);
end;
procedure TForm1.Button4Click(Sender: TObject);
var
s:array of tScaner;
i:Integer;
begin
SetLength(s, 6);//动态数组需先设置数组的长度
for i := 0 to 5 do
begin
s[i]:=tScaner.Create(True);//创建初始化线程时先将线程挂起,传True就是挂起
s[i].user:= form1.bsSkinListView1.Items[i].Caption;
s[i].pass:=bsSkinListView1.Items[i].SubItems.Strings[0];
s[i].id:=i;
s[i].Resume;//启动线程执行
end;