各位大侠!有没有什么好的方法,在程序运行的过程中转让控制权给操作系统一段时间后,再接着原来的步骤继续进行

lancexu 2002-03-07 08:48:17
如:
function
{
aaaa();
...
xxx();
转让控制权5秒;
bbbb();
...
...
}
执行到xxx()后,交出控制权5秒后,继续向下运行bbbb();
请各位大侠出手!
...全文
56 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
cm_w 2002-03-08
  • 打赏
  • 举报
回复
sleep后程序不会再得到CPU的时间片,既是程序不会被执行直到SLEEP结束
lancexu 2002-03-08
  • 打赏
  • 举报
回复
up
lancexu 2002-03-08
  • 打赏
  • 举报
回复
请大侠们继续出招呀!!!!!!
lancexu 2002-03-08
  • 打赏
  • 举报
回复
不好意思,表达的不够准确!
正如 cm_w(cm) 所说,sleep后程序不会再得到CPU的时间片,既是程序不会被执行直到SLEEP结束。
我的问题是在这个程序段中不会再得到CPU的时间片,而此时其他的消息处理函数仍然可以响应如何办?
就是如
afunction
{
...
停止一段时间;
...

在停止的这段时间里如果有比如鼠标移动的处理函数,仍然可以工作,怎么办?
谢谢大家!
finalvictory 2002-03-08
  • 打赏
  • 举报
回复
在没有消息的时候调用WaitMessage挂起你的线程。
gameboy999 2002-03-08
  • 打赏
  • 举报
回复
在你的语句里面加入
time_t ltime;
time_t Now = time(<ime);
time_t JustNow =time(<ime);
while(abs(Now-JustNow) <5)
{
//每次赋予最新时间
Now = time(<ime);
DoEvents();
//sleep可要可不要
Sleep(1);
}


void DoEvents()
{
MSG msg;

while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
mjq 2002-03-08
  • 打赏
  • 举报
回复
用线程或ONTIMER都行
mjq 2002-03-07
  • 打赏
  • 举报
回复
你到底要做什么??
goldolphin 2002-03-07
  • 打赏
  • 举报
回复
设置一个标志,如
BOOL isresume=FALSE;
并设置一个定时器。精度设为5000ms;
function1()
{
aaaa();
...
xxx();
isresume=TRUE;
return;
}
function2()
{
bbbb();
...
...
}
OnTimer(...)
{
if(isresume)
{
function2();
isresume=FALSE;
}
}
goldolphin 2002-03-07
  • 打赏
  • 举报
回复
设置一个标志,如
BOOL isresume=FALSE;
并设置一个定时器。精度设为5000ms;
function1()
{
aaaa();
...
xxx();
return;
}
function2()
{
bbbb();
...
...
}
OnTimer(...)
{
if(isresume)
{
function2();
isresume=FALSE;
}
}
mjq 2002-03-07
  • 打赏
  • 举报
回复
在WIN这个多任务系统下不存在某个程序掌握着控制权
xpmao 2002-03-07
  • 打赏
  • 举报
回复
不过这种方法并不好,如果可能的话最好还是用多线程。
xpmao 2002-03-07
  • 打赏
  • 举报
回复
void ProcessMessages()
{
MSG messsage;
while(PeekMessage(&messsage,NULL,0,0,PM_REMOVE))
{
TranslateMessage(&messsage);
DispatchMessage(&messsage);
}
}
mjq 2002-03-07
  • 打赏
  • 举报
回复
你所指的"控制权给操作系统"是什么意思?
lancexu 2002-03-07
  • 打赏
  • 举报
回复
sleep(5000)不行,这段程序仍然掌握着控制权。
不过谢谢你的参与。
请各位大侠,多多指教!
mjq 2002-03-07
  • 打赏
  • 举报
回复
sleep(5000)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧