我遇到一问题,希望大家能帮我一下。我的程序中需要控制一线程的挂起和恢复,但是不能直接用线程自己的suspend,因为线程中反复调用一函数,该函数中描述的是一原子型的操作,线程挂起时,该操作必须处于完成状态。我的处理方法是设一全局量 X,在线程调用函数之前,设为假,在调用后,设为真并延时。
在suspend之前写这样的代码:
while not X do
begin
sleep(10);
end;
想等到X为真的时候,再suspend。
但是结果不像我想像的那样,程序运行到这的时候死循环,跳不出来了,似乎线程不再走了。谁能帮我解释一下,先谢了!
在suspend之前写这样的代码:
while not X do
begin
sleep(10);
end;
想等到X为真的时候,再suspend。
但是结果不像我想像的那样,程序运行到这的时候死循环,跳不出来了,似乎线程不再走了。谁能帮我解释一下,先谢了!
解决方案 »
- 关于aes解密问题
- a,b数组比较,相同,不同分别放在b,c数组算法怎么实现?
- 是不是我把问题发错版了?SOCKET的东西啊.
- 用delphi怎么实现象word那样在编辑文本时插入图象,最好有代码,实在不行给个思路。
- 那里有好的人事资源管理系统的原代码下载?
- 请问如何给一个带参数的指针型的函数付值
- 我用SysTime取得当前时间,为什么总是1899年的,为什么!
- 谁能告诉我开发好的数据库需要BDE订制哪些东西呀,谁给我一份材料,高分相送!
- 似乎有人利用CSDN的短消息在传播“尼姆达”病毒,请大家小心!
- 求救!我用了一个DBGrid其datasource为一ADOTable,我用ADOTable的insert插入了一条记录,在数据库中确实插入了,但在DBGrid却反映不出来!
- 散分啦!谁有免费的mapobject2.0或以上的软件,下载的网址也可以!高分相送!上者有分!
- 请问如何在状态栏中显示图片?
begin
sleep(10);
end;
不是写到调用函数的那个线程里了吧。如果是,你就让那个线程睡大觉去了。推荐用 WaitForSingleObject;
while not X do
begin
Application.ProcessMessage;
end;