纪录每个线程的Handle,在这里你用了TThread类,那么你可以记录NewThread,如果需要结束线程,那么TThread.Terminated设置为True。
解决方案 »
- delphi XE 程序中如果引用了Chart,调用一个也引用了Char单元的dll时出错
- usb转串口驱动程序开发
- DateTimePicker控件的Date数据保存到access数据库中多出时间来!
- 1、listview多选删除如何实现?? 2、从txt中读取大量数据如何快速显示在listview中。3、从txt中读取大量数据如何快速显示在Treeview中
- 关于SocketServer和SocketClient的问题请教
- 怎样动态改变speedbutton按钮上的图标?
- 求助制作CHM格式的帮助用什么软件?急需
- 求助
- 怎么样在DBGRID里输完一条记录后自动换行???????语法怎么写,请告诉我??谢谢
- 请众位高手指点迷津,如何实现单元文件添加到一个工程中去?
- 为什么我报表时的PageFooter显示不出来?
- 关于DCOM,急!急!UP有分!!!!!!
你只要维护好这个数组就行了,自然想停哪个就停哪个
用TList来管理你的线程:constructor TForm1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FList := TList.Create;
end;
destructor TForm1.Destroy;
var
I: Integer;
begin
for I := 0 to FList.Count - 1 do
FreeMem(FList[I]);
Flist.Free;
inherited Destroy;
end;procedure TForm1.AddThread;
var
Thread: TMyThread;
begin
Thread := TMyThread.Create(Edit1, 1000);
Flist.Add(Thread);
end;procedure TForm1.DeleteThread(Index: Integer);
begin
with TMyThread(FList[Index]) do
begin
Terminate;
//FreeOnTerminated := True;不用再去Free,它自动会Free,else 这里调用Free
end;
Flist.Delete(Index);
end;访问主线程的数据,需要同步控制,在次线程中用Synchroze(ProcMethod);
或在主线程中用TThreadList, SyncObjs.TCriticalSection控制。