关于线程中使用回调函数的问题。(100分)

  • 主题发起人 主题发起人 liyinwei
  • 开始时间 开始时间
L

liyinwei

Unregistered / Unconfirmed
GUEST, unregistred user!
其实我对回调函数的使用不是很了解,我想这样应该就是回调函数了吧。
我在线程A中定义了一个事件类型的属性
public
property MyEvent: TNotifyEvent read FMyEvent write SetMyEvent;
主线程创建这个线程A后给这个线程A的 MyEvent 属性赋了值,所赋的值是主线程的一个过程。
我现在有 2 个问题:
1.在线程A里面调用 MyEvent 的时候是否需要使用同步?
是 MyEvent(nil);
?
还是 Synchronize(MyEvent(nil));
?
为什么?
2.线程A中执行 MyEvent 的时候,是占用线程A的时间还是主线程的时间?
 
如果你使用了Synchronize,那么MyEvent的执行将占用主线程的时间,否则,将直接在线
程A内执行。至于“是否需要使用同步”,完全看这个MyEvent的性质了——如果不能被多线
程同时调用的话,自然需要考虑同步。
另:Synchronize的用法是 Synchronize(Method);
而这个Method是不能带有任何参数的。
 
顶一下,
我想听听更多兄弟们的看法.
 
是否需要同步要看MyEvent中的代码是否访问Form上的东西或是主线程和线程A是否会同时访问同一个数据.如果是就要同步.
使用同步时,是线程A等待主线程完成执行MyEvent,两个线程的时间都占用.
 
多人接受答案了。
 
后退
顶部