R ravefly Unregistered / Unconfirmed GUEST, unregistred user! 2009-06-24 #1 我有两个线程类A和B,我分别创建了2个线程,那么这4个线程中用Synchronize调用同一方法时,会排队吗?我知道同一个线程类的多个线程实例在调用Synchronize时会转到主进程等候运行。
G guanyue7613 Unregistered / Unconfirmed GUEST, unregistred user! 2009-06-24 #2 既然知道多个线程实例在调用Synchronize时会转到主进程等候运行,主进程是有执行的顺序,为了保证每个过程独立执行,最好用用临界区保护起来。。。。
P Passion Unregistered / Unconfirmed GUEST, unregistred user! 2009-06-27 #4 都在主线程里头跑,主线程没法同时执行,就只有排队了。
D djrj Unregistered / Unconfirmed GUEST, unregistred user! 2009-06-27 #5 Synchronize本来就是把代码放在主线程序中执行的,一个程序只有一个主线程序,当然就排队执行了,所以一般要操作界面时才用Synchronize调用,若是操作公共资源最好是用临界区保护,var cs: TRTLCriticalSection; //这里的cs要定义成全局变量...InitializeCriticalSection(cs); //使用cs前必须初始化,一般放在窗口创建时进行...//以下为访问临界时的保护EnterCriticalSection(cs);try ...写在这里代码要尽可能短哦,以便尽时退出临界区finally LeaveCriticalSection(cs); end;
Synchronize本来就是把代码放在主线程序中执行的,一个程序只有一个主线程序,当然就排队执行了,所以一般要操作界面时才用Synchronize调用,若是操作公共资源最好是用临界区保护,var cs: TRTLCriticalSection; //这里的cs要定义成全局变量...InitializeCriticalSection(cs); //使用cs前必须初始化,一般放在窗口创建时进行...//以下为访问临界时的保护EnterCriticalSection(cs);try ...写在这里代码要尽可能短哦,以便尽时退出临界区finally LeaveCriticalSection(cs); end;
T thrhxm Unregistered / Unconfirmed GUEST, unregistred user! 2009-08-07 #6 to thinkray线程里面能用回调吗?如何用?谢谢