E
ebeggar
Unregistered / Unconfirmed
GUEST, unregistred user!
我定义了一个TCriticalSection类型,如rCS,
在线程1中,
rCS.Enter;
try
...
//代码段1
finally
rCS.Leave;
end;
在线程2中,
rCS.Enter;
try
...
//代码段2
finally
rCS.Leave;
end;
问题是当线程1的代码段1执行时间稍长,也就是还没有执行到rCS.Leave时,线程2就开始运行了,这时执行rCS.Enter就会使所有线程停止。
该如何解决这个问题?
在线程1中,
rCS.Enter;
try
...
//代码段1
finally
rCS.Leave;
end;
在线程2中,
rCS.Enter;
try
...
//代码段2
finally
rCS.Leave;
end;
问题是当线程1的代码段1执行时间稍长,也就是还没有执行到rCS.Leave时,线程2就开始运行了,这时执行rCS.Enter就会使所有线程停止。
该如何解决这个问题?