如何将函数放入多线程中运行?(200分)

  • 主题发起人 主题发起人 qaz1znz
  • 开始时间 开始时间
Q

qaz1znz

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个函数,现在想开一个线程,在线程中运行这个函数,函数运行完成后
自动关闭线程,因为函数有很多参数,新开线程中如何传递过去,另有几个全局变
量,又如何处理?
 
直接放进去就可以了啊
如果你需要用到同步操作的话那么单独写一个SetParams的过程来接受参数啊,
这几个参数你可以把他定义为这个线程的私有成员啊
执行放在execute里就可以了
 
直接把函数放入线程中不能执行么?在线程中调用和平常调用有什么不同?
 
线程用完要释放,还要防止死锁;
全局变量在线程中使用要谨慎,如果线程同时修改全局变量会触发异常。
 
控制好同步就好了
 
我没做过多线程的东西,看了几个多线程的例子,没看明白,
那位能就我的要求,写几句提示一下吗?多谢多谢
 
继承Delphi本身的线程应该没有这种问题吧?
给其传参数,用API创建好像不能传的?
顺便问一下,API创建的能调用全局变量么?
 
重载线程的构造函数
constructor MyThread.Create(Edit:TEdit;Max:Integer);
begin

inherited Create(False);
AEdit:=Edit;
MaxLoop:=Max;
FreeOnTerminate := True;
end;
procedure MyThread.Execute;
begin

yourprocedure(AEdit,MaxLoop);
end;
 
CallBack Function
 
后退
顶部