楼主:
t78923t (トースト)
2015-12-24 01:19:22开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS 2008
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
无
问题(Question):
我想制造一个可以无限次数执行的循环
目前看到的方式是使用kbhit()函数当作do{...} while( )循环的终止条件
就是在键盘未按下任意键时 循环不会终止
我想请问还有哪种方式可以造成一样效果的?
PS:除了while(1){...}这种方式
谢谢。
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
补充说明(Supplement):
作者:
BIAO (超越自己)
2015-12-24 01:41:00while(变量)... ?
作者:
LPH66 (-6.2598534e+18f)
2015-12-24 02:16:00有什么理由你不想写 while(1) 或 while(true) 吗?
接到东西break while不就行了吗 还有你想要无穷for不是也是有一样的问题
作者:
LPH66 (-6.2598534e+18f)
2015-12-24 06:23:00问题就只是楼上讲的 UI Thread 被卡住了而已
作者:
rodion (r-kan/reminder)
2015-12-24 10:05:00你需要的是multi-thread... 这是gui程式的必备工具
作者: longlongint (华哥尔) 2015-12-24 11:36:00
用 even handle 来做eventmulti-thread 然后把 lock 当接力棒丢 (?
MFC的话就是把无穷循环写在另一个thread停止条件就用个event object去检查吧
作者:
BIAO (超越自己)
2015-12-24 13:14:00楼上几位大大都突破盲肠了!简单的说..在Process起来时,启动一thread,这thread负责处理按了button后的措施,这措施通常是SetEvent,WaitForSingleObject置于new出来这个thread的无穷循环内部,在程式结束时,一样会SetEvent给这个同步物件WaitForSingleObjject,进行资源的释放。这么做的目的,就是为了避免main thread卡住,new的那个就专门用来处理UI后端的资料部份。我想你对于这些Windows API不熟,建议你先了解一下这些工具的使用方式,谢谢。以上只是一种做法供你参考,不一定要这样做,就是一个概念。
作者:
CumCumCum (2 hard 2 hard)
2015-12-24 14:18:00非得主绪执行的话 就用timer吧
作者:
overhead (overhead)
2015-12-24 20:08:00你做mfc一定要开至少两条thread,总不能你后端运作时,user用的画面卡住吧不是很懂 总之你可以用AfxBeginThread
作者:
justinj (黑旋风)
2015-12-25 11:15:00程式是直线执行的..任何无限循环都可以..主要是要有"跳"的方法....
AfxBeginThread,用法可以上msdn查
作者:
overhead (overhead)
2015-12-25 13:27:00另外建议要再念过multi-thread相关知识 不然容易有bug