N
nicai_wgl
Unregistered / Unconfirmed
GUEST, unregistred user!
呵呵,其实用临界区也好,Event也好,还是Suspend也好,效果都是一样的,即在主线程用到某一对象的时候,子线程在使用到该对象时会被挂起。
1、楼主的Suspend再Resume是可以的,子线程会在Suspend的地方接着执行,不会有问题,
但是需要避免的是子线程在使用该对象时被Suspend,这时可能会引起错误。
2、临界区和Event使用正确的话应该都不会引起错误,但是这时子线程和主线程都是平等的
,对象的使用是先入先使用,后面的线程都需要等待。
3、如果楼主想实现主线程优先调用对象,可以在子线程调用对象的代码中间隔循环判断主线程是否需要调用对象的信号(或变量),如果需要调用,则退出对象调用并返回信号(或变量),让主线程优先调用对象。
1、楼主的Suspend再Resume是可以的,子线程会在Suspend的地方接着执行,不会有问题,
但是需要避免的是子线程在使用该对象时被Suspend,这时可能会引起错误。
2、临界区和Event使用正确的话应该都不会引起错误,但是这时子线程和主线程都是平等的
,对象的使用是先入先使用,后面的线程都需要等待。
3、如果楼主想实现主线程优先调用对象,可以在子线程调用对象的代码中间隔循环判断主线程是否需要调用对象的信号(或变量),如果需要调用,则退出对象调用并返回信号(或变量),让主线程优先调用对象。