怎样获知 TThreadList 的是否被锁定状态? ( 积分: 20 )

  • 主题发起人 主题发起人 行到水穷处
  • 开始时间 开始时间

行到水穷处

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure UnlockList
function LockList
这两个冬冬不能随便乱用,必须知道是否被锁定的前提下才能使用,否则,程序就死悄悄
(无限等待....)
找了帮助,好像没有这个锁定状态的东西,那位能告诉我解决办法?
 
procedure UnlockList
function LockList
这两个冬冬不能随便乱用,必须知道是否被锁定的前提下才能使用,否则,程序就死悄悄
(无限等待....)
找了帮助,好像没有这个锁定状态的东西,那位能告诉我解决办法?
 
不必要去查询锁定状态,TThreadList 被别的线程锁定你的线程本来就应该等待,但不是无限等待吧,一旦对方解除锁定你就会结束等待了啊
你所说的“程序就死悄悄”我想你可能是在主线程中调用LockList了吧
 
迷糊:
主线程调用的过程要对 全局变量 ThreadList进行操作,没办法
第一次运行还行,但是第二次调用那个过程(对 全局变量 ThreadList进行操作) 就死悄悄了,
 
怎么办?
 
>>第一次运行还行,但是第二次调用那个过程(对 全局变量 ThreadList进行操作) 就死悄悄了
你不要光锁定不解锁啊。你这样做还不如再用一个全局标志位来标示是否锁定呢
另外,访问ThreadList最好全部放在子线程中,主线程中访问,肯定会锁死界面的
 
来自:迷糊, 时间:2005-6-15 10:52:17, ID:3105008
>>第一次运行还行,但是第二次调用那个过程(对 全局变量 ThreadList进行操作) 就死悄悄了
你不要光锁定不解锁啊。你这样做还不如再用一个全局标志位来标示是否锁定呢
<<<<我在每个LockList之后总要UnlockList一下,应该不会发生这种低级错误的。
另外,访问ThreadList最好全部放在子线程中,主线程中访问,肯定会锁死界面的
<<<<看来是没办法了,不行我就得放弃使用这个ThreadList了,
因为多线程并发的时候要从一个全局变量取信息,我把这些信息是放到这个ThreadList中的
肯定要用到全局的
 
在主线程中访问也是没有问题的。我想还是某个地方忘记了UnLockList
ThreadList.LockList;
try
......
finally
ThreadList.UnLockList;
end;
 
多人接受答案了。
 
后退
顶部