以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- 再次请教PeekAndPump无法返回问题 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=159351) |
-- 作者:lyh27557496 -- 发布时间:2017/11/9 9:35:32 -- 再次请教PeekAndPump无法返回问题 在for循环中有打开框架、处理数据、再关闭框架的操作,因为有多个框架要处理,担心大量占用资源会导致金字塔崩溃,因此在for循环里使用了PeekAndPump,但是经常打开某个框架后(哪个框架不固定,随机的)就卡住了,界面没反应,鼠标点击正常。如果不使用PeekAndPump则可以顺利执行完所有打开框架关闭框架的操作。 之前以为是PeekAndPump后会优先处理行情进来,但是试过在for循环前就把数据接收都关了,同样会卡住。 金字塔又没有DoEvents方法可用。请问下PeekAndPump到底是怎么封装的?帮助文档只有几句话,有没有更加具体的说明?开了PeekAndPump后会一直查询有没有其它消息?行情都关了,交易也停了(已收盘),没有其它消息要处理了,那PeekAndPump到底在等什么? |
-- 作者:无为剑 -- 发布时间:2017/11/9 11:13:27 -- 这个函数实际上就是封装了WINDOWS的消息队列处理,如果你确认是在PeekAndPump挂起的,那么说明你的代码有某个地方出现了消息挂起而导致等待。 你可以用排除法看一下具体是那个窗体或者框架等操作导致的挂起,逐步缩小问题范围。 |
-- 作者:lyh27557496 -- 发布时间:2017/11/9 13:02:18 -- 如果循环有嵌套,PeekAndPump是放在最里面的循环吗?还是说各层循环都需要? |
-- 作者:无为剑 -- 发布时间:2017/11/9 13:05:26 -- 这个没有特定的位置,一般是放在你的长时间处理循环中,循环的途中处理其他事件。如果你的循环本身不复杂不长时间占用,那么也没必要搞这个函数的 |
-- 作者:lyh27557496 -- 发布时间:2017/11/9 13:38:43 -- 金字塔有没有消息队列处理的一些接口可以用来测试? |
-- 作者:无为剑 -- 发布时间:2017/11/9 13:57:54 -- 这个本身就是WINDOWS底层API封装的,你需要什么测试? |