求助:如何让一个函数一直执行下去
phpskycn2009/08/02软件综合 IP:浙江
某函数的功能是检测某点颜色
如果满足某些条件,则做某些事情。
我希望它一直执行下去,直到进程被干掉。
最后不用return就可以了吗?

还是要在函数末尾再执行一遍??
。。。。。。。。。。。
(热烈庆祝不用20字了)
来自:计算机科学 / 软件综合
29
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
supercat
14年11个月前 IP:未同步
135172
做个无限循环,中间用个延时的函数,隔一段时间进行一次循环就可以。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
dctyu
14年11个月前 IP:未同步
135174
就用LS的方法。如果进程功能复杂得话,那么需要考虑把这个函数放在某线程里执行。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon
14年11个月前 IP:未同步
135175
timer1可以满足您的要求。简单方便快捷高效。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年11个月前 IP:未同步
135189
for(;;){
;
}


while(1){
;
}



loop:
;
goto loop;
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
phpskycn作者
14年11个月前 IP:未同步
135200
早就试过了
我家的老爷机上会让进程直接死掉
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年11个月前 IP:未同步
135202
引用第5楼phpskycn于2009-08-02 16:50发表的  :
早就试过了
我家的老爷机上会让进程直接死掉

原来如此,原来windows会自动结束/挂起运算中的进程,受教受教
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年11个月前 IP:未同步
135204
引用楼主phpskycn于2009-08-02 15:08发表的 求助:如何让一个最后不用return就可以了吗?

还是要在函数末尾再执行一遍??
.......


这个问题相当强悍,如果运算中的进程会被windows结束/挂起,我确实想不出什么好方法可以循环

对了!可以截获线程退出事件,在这个事件执行之前启动另一个exe!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
我说要有光
14年11个月前 IP:未同步
135205
引用第5楼phpskycn于2009-08-02 16:50发表的  :
早就试过了
我家的老爷机上会让进程直接死掉

1.复杂的过程中保险起见应该加try catch
2.过程执行当中会停止进程的其它操作,包括对Message的响应,建议新开线程
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年11个月前 IP:未同步
135206
引用第8楼我说要有光于2009-08-02 16:57发表的  :

1.复杂的过程中保险起见应该加try catch
2.过程执行当中会停止进程的其它操作,包括对Message的响应,建议新开线程

一点都不复杂,不过是getpixel然后发键盘而已  = =
其实LZ的情况是这样的,如果创建一个线程让它循环,就会出现假死

解决方法非常 无敌的简单,就是sleep()一会

LZ所谓的“挂掉”不过是这个进程太“专心”罢了,让它sleep几毫秒就好
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
我说要有光
14年11个月前 IP:未同步
135207
引用第6楼破93于2009-08-02 16:52发表的  :

原来如此,原来windows会自动结束/挂起运算中的进程,受教受教

加个按钮,写句while(1){Sleep(1000);}
你点你也死。。 = =
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年11个月前 IP:未同步
135210
引用第10楼我说要有光于2009-08-02 16:59发表的  :

加个按钮,写句while(1){Sleep(1000);}
你点你也死。。 = =

情况不一样,死的是UI线程 = =
您可以做个测试,创建一个线程然后一直判断循环,不sleep,会发现CPU100%
加一句sleep(50)就嘛事没有,0%

我写superclick的时候就出现了这种情况,sleep(50)解决
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年11个月前 IP:未同步
135215
小光看着办 = = 简单测试

t1.png

t2.png
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon
14年11个月前 IP:未同步
135217
楼上是因为电脑太好,我这里sleep和不sleep时候CPU占用率是一样的。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
我说要有光
14年11个月前 IP:未同步
135218
线程里就算不sleep通常进程也是不会死的```  最多对Message的响应会慢些
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年11个月前 IP:未同步
135220
引用第14楼我说要有光于2009-08-02 17:14发表的  :
线程里就算不sleep通常进程也是不会死的```  最多对Message的响应会慢些

于是LZ说“挂掉”就必然是不可能的了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年11个月前 IP:未同步
135222
引用第13楼novakon于2009-08-02 17:14发表的  :
楼上是因为电脑太好,我这里sleep和不sleep时候CPU占用率是一样的。

马上开机,上奔三
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年11个月前 IP:未同步
135230
算了……没装framework

两位应该去看一下《深入解析windows操作系统》第六章(进程、线程和作业),有详细提到这方面的内容
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
phpskycn作者
14年11个月前 IP:未同步
135239
唉,93语文水平就是没长进
挂掉==挂起,程序无响应
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年11个月前 IP:未同步
135242
看清楚,我写的就是挂起(hang)
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
noname剑人
14年11个月前 IP:未同步
135243
多线程+SLEEP(非VB。。。)
或者
timer
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
phpskycn作者
14年11个月前 IP:未同步
135245
典型错误:断章取义
结束二字就这么不见了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon
14年11个月前 IP:未同步
135254
没必要把某人用汉语语法书写cpp的光荣事迹拖出来吧……

还有我觉得用timer比啥都强,什么挂起啊这些问题都没有了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年11个月前 IP:未同步
135255
timer  实际上就是脑残版新线程+sleep 。。但是又不能算多线程 有点不伦不类的感觉 = =

但是用timer进行复杂运算的话UI线程会卡住 。。所以timer比较适合 比较 呃 XX吧 = =
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jimmyxu
14年11个月前 IP:未同步
135256
引用第23楼novakon于2009-08-02 18:54发表的  :
没必要把某人用汉语语法书写cpp的光荣事迹拖出来吧……

还有我觉得用timer比啥都强,什么挂起啊这些问题都没有了

还是线程有爱,Timer如果不小心加到UI线程上了那还是会卡的。
一个XXXXXXXXXreading命名空间搞定一切。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon
14年11个月前 IP:未同步
135260
楼主的程序貌似不需要“流畅”,只要能监测屏幕像素就行了。除非会影响到其他程序的运行,否则其性能问题基本不用考虑……
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年11个月前 IP:未同步
135262
确实是这样的,.NET里可以5行以内搞定的程序 。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
14年11个月前 IP:未同步
135263
第一行:copy屏幕
第二行:获取像素
第三行:判断并执行

还有两行循环语句,实际上包含循环,3行能搞定 。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
我说要有光
14年11个月前 IP:未同步
135277
引用第24楼破93于2009-08-02 18:56发表的  :
timer  实际上就是脑残版新线程+sleep 。。但是又不能算多线程 有点不伦不类的感觉 = =

但是用timer进行复杂运算的话UI线程会卡住 。。所以timer比较适合 比较 呃 XX吧 = =

timer可以用来创建线程,用完直接销毁就OK了```
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
小俊
14年11个月前 IP:未同步
135325
用MFC的话要用AfxBeginThread新开线程来做,否则的话无法回到消息循环,应用程序会失去响应。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
phpskycn
专家 老干部 学者 机友 笔友
文章
402
回复
4591
学术分
8
2009/03/15注册,4天1时前活动

CV

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}