PB多线程相关

撸过才知道 2009-03-06 05:13:08
我现在想做一个进度条来显示当前任务完成的进度,但又可以随时中止,
这个应该怎么样实现啊?
我现在的想法是,通过多线程来实现,在网上看了许多多线程的实例,但就是成功不了
窗口w_main包含一个uo-do对象和一个uo-thread对象和一个进度条,两个按钮(一个开始,一个停止).

uo-do是自定义控件,来实现任务,并调用进度条,
uo-thread是自定义控件,内包含一个uo-do对象

//下面是部分实现代码:

uo-do1 = create uo-do
//将uo—thread对象注册为object1
sharedobjectregister("uo-thread","object1")
//用uo—thread1引用共享对象object1
sharedobjectget("object1",uo-thread1)
uo-thread1.uf-setparent(uo-do1)

然后用uo-thread1的函数去调用uo_do对象去完成任务

但是点了开始后窗口就不再响应了,直到任务完成后才会响应,想问下是哪里做的不对啊
...全文
676 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanghua_1228 2009-04-24
  • 打赏
  • 举报
回复
楼主留下个邮箱吧,我写了个例子,刚好是进度条
撸过才知道 2009-04-16
  • 打赏
  • 举报
回复
哦,这样啊,那看来是不行的了,不过我这边也见到过一个数据库备份的小工具,是多线程的,就是你在备份数据库的时候是在后台自动运行的,你还可以进行其它的操作,不占用太多的资源,但是它并没有显示备份的进度,而且在备份的时候那个界面也是不响应事件的,呵呵,这个应该也是和你说的一样的吧
lalibird 2009-04-14
  • 打赏
  • 举报
回复
以前听一个公司的老大说 他们用PB程序来模拟多线程,不能直接多线程的
撸过才知道 2009-04-09
  • 打赏
  • 举报
回复
不好意思,最近在忙一些其它的事情,把这个事情给忘了,呵呵
撸过才知道 2009-04-09
  • 打赏
  • 举报
回复
嗯 ,我之前在网上下了一个例子,他是在主界面的TIMER事件上写一些代码来实现的。
mnsiii 2009-03-09
  • 打赏
  • 举报
回复
PB肯定支持多线程,我曾经完成过pb多线程的例子,你在检查下程序,我去找找我的老程序
zhgwbzhd 2009-03-09
  • 打赏
  • 举报
回复
好好看看那个老外的例子吧。
虽然不能达到真正多线程的目的,但是也可以使用了。
heliang 2009-03-09
  • 打赏
  • 举报
回复
sharedobject是假的多线程,如果在线程中要修改界面元素,需要一个nvo对象做中介。

你可以通过这个思路来做界面控制线程功能,界面修改nvo中的值,线程中定期读取nvo中的值来决定是否继续执行。

还有pb多线程的一个问题好像在多核机器上还需要绑定一个核心,否则无法运行。
nimittz 2009-03-09
  • 打赏
  • 举报
回复
据我所知,PB中无法实现多线程!我以前甚至使用了外挂的dll来实现,结果发现和PB的主线程没法衔接!楼上的把你的例子拿出来SHOW一下!QQ438392041
编程夜猫 2009-03-08
  • 打赏
  • 举报
回复
PB就不支持多线程。楼主的方案我也没做成。
建议楼主用别的方法替代。
rogery 2009-03-07
  • 打赏
  • 举报
回复
三年没有发过信息了。呵呵。今天是第一次
rogery 2009-03-07
  • 打赏
  • 举报
回复
是静止还是类似于死机?

加一下 Yield ( ) 试一下
jdsnhan 2009-03-07
  • 打赏
  • 举报
回复
PB处理多线程就是个弱智
AFIC 2009-03-07
  • 打赏
  • 举报
回复
sharedobject没法停下来,
你还是用timer加yield为吉。
cyx90 2009-03-07
  • 打赏
  • 举报
回复
不错努力
wangxun0997 2009-03-07
  • 打赏
  • 举报
回复
你这个也不是多线程的东东啊,
你可以在你的Uo_do控件代码中适时(分隔成小的模块或...)地加入楼上说的Yield()来抛出程序控制权,这样你的停止按钮才有机会触发。

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧