请问线程挂起是一个什么样的概念?(50分)

  • 主题发起人 主题发起人 LuckyJackie
  • 开始时间 开始时间
呵呵,其实用临界区也好,Event也好,还是Suspend也好,效果都是一样的,即在主线程用到某一对象的时候,子线程在使用到该对象时会被挂起。
1、楼主的Suspend再Resume是可以的,子线程会在Suspend的地方接着执行,不会有问题,
但是需要避免的是子线程在使用该对象时被Suspend,这时可能会引起错误。
2、临界区和Event使用正确的话应该都不会引起错误,但是这时子线程和主线程都是平等的
,对象的使用是先入先使用,后面的线程都需要等待。
3、如果楼主想实现主线程优先调用对象,可以在子线程调用对象的代码中间隔循环判断主线程是否需要调用对象的信号(或变量),如果需要调用,则退出对象调用并返回信号(或变量),让主线程优先调用对象。
 
不知道delphi能否实现java那样的对象同步,同一时间只能一个线程访问该对象,临界区只是防止代码重入,还得设置一个全局CriticalSection
 
后退
顶部