首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

讨论pb多线性,利用timing实现后台打印实现解决方法

2012-04-11 
讨论pb多线性,利用timing实现后台打印实现昨天我做了个程序中的后台打印。首先继承了 timing 创建 用户对象

讨论pb多线性,利用timing实现后台打印实现
昨天我做了个程序中的后台打印。
首先继承了 timing 创建 用户对象 nvo_timing 
窗口中加实例变量 nvo_timing timer1
在打印按钮
Timer1.Start(0.01)

在 用户对象 nvo_timing 
的timer事件中就可以实现后台打印了
经测试效果还可以,没发现有错误。
以前想用多线程时查到的资料多是利用shareobject的,好像有不少限制,如不能访问全局变量等,不知道timing对象有什么缺点,是否稳定?
欢迎大家讨论交流一下pb多线性的实现方式。

[解决办法]
看我博客:
http://blog.csdn.net/gaoqiangz/article/details/6682895
[解决办法]
用Timer也可以做到,但不能保存它能在指定的时间内执行任务,因为它受主线程影响
[解决办法]
timing不是多线程的,当timing的timer事件执行时,如果该事件的代码运行时间较长,则主程序同样必须等待它执行完毕,才能继续执行。

shareobject才能实现多线程,虽然不能共享全局变量,但是可以进行传参,将全局变量传入


[解决办法]
多进程吧
[解决办法]
你可以自己试一下,假设timing的时间间隔为2秒,而你此时在做一个需要1分钟才能完成的操作,那么在这1分钟内,timing的timer事件是无法被立即执行的,只有等到1分钟后才可以执行

或者你在timer事件中写一个需要执行1分钟的代码,然后设置timing的时间间隔为1分钟,你看看你的主程序还可以运行吗
[解决办法]
多进程的成本比多线程高,而且不易控制,用多线程可以完美的解决你的问题。普通定义的Timing是运行在主线程的,主程序默认是一个线程的,所以它们相互影响。
[解决办法]
timing非多线程,如果代码执行的时间太长,会影响下次的执行

如代码执行需要10秒,你设置是1秒执行一次,你会发现,会漏执行很多次,


如果代码执行时间太长,还需要精确,建议用多线程来实现即shareobject

如果代码执行时间较短,可以用这种方式,优点,用起来比较简单

热点排行