内容:
定义了一个关机函数
定义了一个取当前时间的函数
main()
{ do
{
取当前时间 ;
}
while(当前时间!=输入的关机时间)
调用关机函数;
}
上述程序代码已经实现,问题出现在,当我运行这个程序的时候,由于一直在掉用while循环,CPU使用率占到50%左右,不知道该怎么解决,我的想法是让这个程序每间隔10分钟运行一次,这样就可以解决问题,不知道 可以实现不??
各位帮帮 看看有没有什么其他的想法来帮我解决下问题.
38 个解决方案
#1
如果你用window,控制面板里的计划任务可以满足你的需求。用linux也有类似的方法。用操作系统就可以了。
#2
关注中,有病毒技术也使用了这种方式,但是占用内存很小,占个位置听高人指教!
#3
看起来简单,有点难度啊 。。。。。。。。
看楼下了
看楼下了
#4
我没分啊, 郁闷 来位大虾指点下啊
以后给补上
以后给补上
#5
关机了你的程序也终止了,即使你设置了开机启动,程序也无法知道上次这个程序是什么时候运行和结束的,除非你用文件形式保存下来,不过如果关机不是你的程序来做的,它还是不会得到程序结束的时间,所以确切来说,让你这个程序每隔一段时间运行是不可能的
#6
我的想法是,该程序在启动状态时候,自动读取当前时间并按照程序流程执行,如果下次开机时候将会自动从某个文件中读取上次记录,并按照相关备用方案执行,有点和木马病毒靠近了,关注中!
#7
用windows的任务计划 或者linux的crontab吧,别再自己造轮胎了
至于while占cpu的问题,可以用 sleep() 来简单的解决一下
至于while占cpu的问题,可以用 sleep() 来简单的解决一下
#8
我记得汇编程序可以用延时程序完成 ,因为每条指令执行需要时间一定,可以用多重循环来实现
#9
我只想问下楼上windows下的 c 伪asm? 支持 16位 cpu操作指令?halt?
#10
其实我觉得用sleep函数挺好!!!
#11
写个windows程序
用OnTimer()做啊
用OnTimer()做啊
#12
mark
#13
启动时,算一下离关机的时间,直接休眠到那个时候就可以了。。。
#14
实在不行只能 掉用 Sleep 函数 进行休眠了
#15
main()
{ do
{
取当前时间 ;
Sleep(100);
}
while(当前时间!=输入的关机时间)
调用关机函数;
}
{ do
{
取当前时间 ;
Sleep(100);
}
while(当前时间!=输入的关机时间)
调用关机函数;
}
#16
ls的完全可以,不过不可以使用
!= ,而是
>=;不然时间很难跑到那个点上。
#17
那是我写的好吧? 是lz 不是ls 汗!!!
#18
启动时,算一下离关机的时间,直接休眠到那个时候就可以了。。。
#19
晕,不知道vc有mfc这个东西吗。没用过ctimer类吗?
#20
汗一个...
弄个时间计时器,隔一段时间判断一次条件....就行了!
难度很复杂吗,还是我想的太简单了
弄个时间计时器,隔一段时间判断一次条件....就行了!
难度很复杂吗,还是我想的太简单了
#21
时间 计时器 不是也在一直 运行么?
主要是想解决 让他不一直占用CPU的问题
主要是想解决 让他不一直占用CPU的问题
#22
可以考虑,我现在 用的是这个
#23
你要加载的程序,隔一段执行
是退出后再执行,还是程序已执行再执行相关的行为
如果是前者的话,那有点难了, 让子程序这需要挂勾系统,再退出主程序,然后再让子程序判断条件加载主程序...
当然也有其它的方法,
这技术在病毒木马用的比较多,可以查查相关的病毒技术!
是退出后再执行,还是程序已执行再执行相关的行为
如果是前者的话,那有点难了, 让子程序这需要挂勾系统,再退出主程序,然后再让子程序判断条件加载主程序...
当然也有其它的方法,
这技术在病毒木马用的比较多,可以查查相关的病毒技术!
#24
时间 计时器 不是也在一直 运行么?
是一直在行动,但实际上,在现今的PC机是根本感觉不到它在运行的,如果CPU占用过多,那肯定是你判断条件逻辑的问题,或是发现了死循环
是一直在行动,但实际上,在现今的PC机是根本感觉不到它在运行的,如果CPU占用过多,那肯定是你判断条件逻辑的问题,或是发现了死循环
#25
像你那样用while来判断,不当机,那是不正常的!!!
这效果现实很简单的...
加个时间器,隔一秒判断条件就行了
像你那样while,那是不间断的判断条件
==死循环
这效果现实很简单的...
加个时间器,隔一秒判断条件就行了
像你那样while,那是不间断的判断条件
==死循环
#26
cron 就可以 在任务里注册
#27
问下?? 怎么加每隔一秒的计时器,我问的就是这个呀
#28
用sleep吧!当进程休眠的时候是不占用CPU资源的...
#29
用sleep()停止一秒就可以了。
#30
买个10000G的cou实验下,看还占用那么多不了。。。。
#31
楼上的 你太 搞笑了 呵呵
我现在的做法就是用 sleep函数 解决的
之所以没有结帖 就是想看看大家有什么更好的办法没
我现在的做法就是用 sleep函数 解决的
之所以没有结帖 就是想看看大家有什么更好的办法没
#32
SLEEP()
#33
16楼 明显是在说 15楼 所以说LS
楼主怎么理解的晕了
取当前时间
然后计算机与目标时间的差值
然后sleep 差值时间
然后关机
关机之前还可能给出个警告
写个批处理都能完成
at 0:00 shutdown -s
楼主怎么理解的晕了
取当前时间
然后计算机与目标时间的差值
然后sleep 差值时间
然后关机
关机之前还可能给出个警告
写个批处理都能完成
at 0:00 shutdown -s
#34
貌似和病毒一点关系都没有.
#35
取 计算机的 时间 然后 执行程序而已,
比如 cih
比如 cih
#36
33楼和我想的差不多啊,我是最近看了编程之美后,才有那么点想法的。
#37
用sleep()函数即可
#38
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
system("at 12:25 shutdown -s");
system("PAUSE");
return EXIT_SUCCESS;
}
#1
如果你用window,控制面板里的计划任务可以满足你的需求。用linux也有类似的方法。用操作系统就可以了。
#2
关注中,有病毒技术也使用了这种方式,但是占用内存很小,占个位置听高人指教!
#3
看起来简单,有点难度啊 。。。。。。。。
看楼下了
看楼下了
#4
我没分啊, 郁闷 来位大虾指点下啊
以后给补上
以后给补上
#5
关机了你的程序也终止了,即使你设置了开机启动,程序也无法知道上次这个程序是什么时候运行和结束的,除非你用文件形式保存下来,不过如果关机不是你的程序来做的,它还是不会得到程序结束的时间,所以确切来说,让你这个程序每隔一段时间运行是不可能的
#6
我的想法是,该程序在启动状态时候,自动读取当前时间并按照程序流程执行,如果下次开机时候将会自动从某个文件中读取上次记录,并按照相关备用方案执行,有点和木马病毒靠近了,关注中!
#7
用windows的任务计划 或者linux的crontab吧,别再自己造轮胎了
至于while占cpu的问题,可以用 sleep() 来简单的解决一下
至于while占cpu的问题,可以用 sleep() 来简单的解决一下
#8
我记得汇编程序可以用延时程序完成 ,因为每条指令执行需要时间一定,可以用多重循环来实现
#9
我只想问下楼上windows下的 c 伪asm? 支持 16位 cpu操作指令?halt?
#10
其实我觉得用sleep函数挺好!!!
#11
写个windows程序
用OnTimer()做啊
用OnTimer()做啊
#12
mark
#13
启动时,算一下离关机的时间,直接休眠到那个时候就可以了。。。
#14
实在不行只能 掉用 Sleep 函数 进行休眠了
#15
main()
{ do
{
取当前时间 ;
Sleep(100);
}
while(当前时间!=输入的关机时间)
调用关机函数;
}
{ do
{
取当前时间 ;
Sleep(100);
}
while(当前时间!=输入的关机时间)
调用关机函数;
}
#16
ls的完全可以,不过不可以使用
!= ,而是
>=;不然时间很难跑到那个点上。
#17
那是我写的好吧? 是lz 不是ls 汗!!!
#18
启动时,算一下离关机的时间,直接休眠到那个时候就可以了。。。
#19
晕,不知道vc有mfc这个东西吗。没用过ctimer类吗?
#20
汗一个...
弄个时间计时器,隔一段时间判断一次条件....就行了!
难度很复杂吗,还是我想的太简单了
弄个时间计时器,隔一段时间判断一次条件....就行了!
难度很复杂吗,还是我想的太简单了
#21
时间 计时器 不是也在一直 运行么?
主要是想解决 让他不一直占用CPU的问题
主要是想解决 让他不一直占用CPU的问题
#22
可以考虑,我现在 用的是这个
#23
你要加载的程序,隔一段执行
是退出后再执行,还是程序已执行再执行相关的行为
如果是前者的话,那有点难了, 让子程序这需要挂勾系统,再退出主程序,然后再让子程序判断条件加载主程序...
当然也有其它的方法,
这技术在病毒木马用的比较多,可以查查相关的病毒技术!
是退出后再执行,还是程序已执行再执行相关的行为
如果是前者的话,那有点难了, 让子程序这需要挂勾系统,再退出主程序,然后再让子程序判断条件加载主程序...
当然也有其它的方法,
这技术在病毒木马用的比较多,可以查查相关的病毒技术!
#24
时间 计时器 不是也在一直 运行么?
是一直在行动,但实际上,在现今的PC机是根本感觉不到它在运行的,如果CPU占用过多,那肯定是你判断条件逻辑的问题,或是发现了死循环
是一直在行动,但实际上,在现今的PC机是根本感觉不到它在运行的,如果CPU占用过多,那肯定是你判断条件逻辑的问题,或是发现了死循环
#25
像你那样用while来判断,不当机,那是不正常的!!!
这效果现实很简单的...
加个时间器,隔一秒判断条件就行了
像你那样while,那是不间断的判断条件
==死循环
这效果现实很简单的...
加个时间器,隔一秒判断条件就行了
像你那样while,那是不间断的判断条件
==死循环
#26
cron 就可以 在任务里注册
#27
问下?? 怎么加每隔一秒的计时器,我问的就是这个呀
#28
用sleep吧!当进程休眠的时候是不占用CPU资源的...
#29
用sleep()停止一秒就可以了。
#30
买个10000G的cou实验下,看还占用那么多不了。。。。
#31
楼上的 你太 搞笑了 呵呵
我现在的做法就是用 sleep函数 解决的
之所以没有结帖 就是想看看大家有什么更好的办法没
我现在的做法就是用 sleep函数 解决的
之所以没有结帖 就是想看看大家有什么更好的办法没
#32
SLEEP()
#33
16楼 明显是在说 15楼 所以说LS
楼主怎么理解的晕了
取当前时间
然后计算机与目标时间的差值
然后sleep 差值时间
然后关机
关机之前还可能给出个警告
写个批处理都能完成
at 0:00 shutdown -s
楼主怎么理解的晕了
取当前时间
然后计算机与目标时间的差值
然后sleep 差值时间
然后关机
关机之前还可能给出个警告
写个批处理都能完成
at 0:00 shutdown -s
#34
貌似和病毒一点关系都没有.
#35
取 计算机的 时间 然后 执行程序而已,
比如 cih
比如 cih
#36
33楼和我想的差不多啊,我是最近看了编程之美后,才有那么点想法的。
#37
用sleep()函数即可
#38
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
system("at 12:25 shutdown -s");
system("PAUSE");
return EXIT_SUCCESS;
}