我有两个线程类A和B,我分别创建了2个线程,那么这4个线程中用Synchronize调用同一方法时,会排队吗(50)

R

ravefly

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