比如说吧: 主窗体里面有个idudpclient控件,主窗体里面调用线程构造函数for i:=0 to 10 do begin TTestThread.create(idudpclient); end; 而线程的构造函数是 create(idudpclient:TIdudpclient); begin Fidudpclient:=idudpclient;end; 如果在线程里面有对Fidudpclient的操作,那么循环产生的线程是否是顺序执行的,也就是说是其实是单线程,还是是真实的多线程,互相执行,互不干扰
不知你这么说是什么意思?你是说把主窗口(即主线程)的idudpclient的句柄传入了,还是直接构造了一个新的?如果你相当于在线程内部新建了一个idudpclient 那么就是多线程。如果你只是每个线程都在监听主线程的idudpclient ,那么也是多线程,但对idudpclient来说,只是在主线程内部工作,是单线程。通常我用多线程做客户端时,都是把id的控件包在thread类内部。通过mutex控制共享数据部分。
主窗体里面有个idudpclient控件,主窗体里面调用线程构造函数for i:=0 to 10 do
begin
TTestThread.create(idudpclient);
end;
而线程的构造函数是
create(idudpclient:TIdudpclient);
begin
Fidudpclient:=idudpclient;end;
如果在线程里面有对Fidudpclient的操作,那么循环产生的线程是否是顺序执行的,也就是说是其实是单线程,还是是真实的多线程,互相执行,互不干扰