hur.cn - 华软网

 热门搜索

是否pb的bug,路过的进来看看

  作者:未知    来源:网络    更新时间:2018/7/4
我在一个循环里,调用了一个函数,运行时发现被执行了两遍,可我在调用函数前加入一个messagebox()后,意思是强制中断一下,结果发现调用正常了,函数只执行了一遍,反复检查,不知问题出在何处,请高手指教一二,谢谢了
------华软网友回答------
肯定不是PB的问题而是你代码的问题!
------华软网友回复------
不要用messagebox来调试,有时用messagebox调试的结果和实际结果不同,最好是debug一下,如果debug不方便,可以写文件写数据库什么的。
------华软网友回复------
代码的问题,可能触发别的事件,而别的事件也调用此函数。
------华软网友回复------
同意楼上的意见
------华软网友回复------
估计可能是一些事件出了问题,可能是一些涉及到焦点的事件,你用了MESSAGEBOX焦点就丢失到了MESSAGEBOX上了,所以执行了一次,否则焦点仍然在原处执行了两次。从现象上看,感觉还是你写程序的问题,估计是在DW的rowfocuschanged itemchange getfocuse等与焦点有关的事件中出的问题
------华软网友回复------
首先感谢各位的解答,再详细介绍一下,我这个是利用winsock做的嵌套在erp里的信息传递系统,类似sap的消息传递方式,debug跟踪不出来,而且,pb的debug经常跟实际运行结果不同的;而且我这个循环是在一个函数里做的,函数是一个按钮的点击事件触发的,不应该存在被触发两次,或焦点转移问题,请各位再帮忙看看有什么其他可能存在,谢谢了
------华软网友回复------
類似的問題,我也遇到過多次,只是一直沒解,估且認為是pb的BUG.
偶爾在開發的系統,一段代碼無緣無故不會執行,當你加一個messagebox()以后,運行就正常了.
而且再刪除此messagebox后,程式就正常了.
------华软网友回复------
補充:此問題一般是在pbl源程式中發現,編譯以后的pbd或dll還沒有發現過.
------华软网友回复------
是问题,但不一定是PB的BUG.非PB的程序有时也会有类似的情况.
一般退出系统后再来一次就好了,我想和操作系统有关,也许是WINDOWS的BUG
------华软网友回复------
我也觉得是代码的问题,我看你还是把代码贴出来看一下
------华软网友回复------
我现在也感觉可能是socket代码的问题,可只那一段代码不能说明问题,哪位知道socket事件的触发机理,告诉一下啊
------华软网友回复------
socket是不能这样跟踪。建议你把怀疑被重复调用的函数设一个计数器(或一些可疑点,比如:重点的事件里,设置更多的计数器),循环结束后,再显示这个计数器看看。

socket最好用事件方式处理。因为socket是收发交互方式,应多考虑这种方式可能触发某个事件,而二次调用或多次调用函数问题。
------华软网友回复------
应该是程序写的有问题,而不是BUG      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。