找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 8724|回复: 11

老马的这个多线程序,如何动态创建呢?

[复制链接]

76

主题

375

回帖

0

精华

铜牌会员

积分
231
发表于 2009-1-7 10:00:27 | 显示全部楼层 |阅读模式
<p><font face="Verdana"><a href="http://www.m5home.com/blog/article.asp?id=54">http://www.m5home.com/blog/article.asp?id=54</a></font></p>
<p>&nbsp;</p>
<p>每次只能在程序中使用固定的线程郁闷。</p>
<p>&nbsp;</p>
<p>而且如果把<font face="Verdana">Set i = CreateObject("MT.CMT")</font></p>
<p>这个代码放到过程中加载 新线程序中多少还会出现一些问题。</p>
<p>所以我只有把这个代码放到 form load 的过程中</p>
<p>但是有个问题,也就是说 i这个线程序不能关闭,若关闭了再调用又不行了,难道只有让窗体重新载入一次么?</p>
<p>&nbsp;</p>

0

主题

9

回帖

0

精华

铜牌会员

积分
262
发表于 2009-3-14 14:29:06 | 显示全部楼层

【讨论】

<p>我按照你说的做了一遍,呵呵,还是好用~~,msgbox 不停止timer控件也不停止mscomm</p>

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2009-3-14 14:39:05 | 显示全部楼层
<p>汗一个.</p>
<p>&nbsp;</p>
<p>还真是.</p>
<p>&nbsp;</p>
<p>而且发现,只要是以ActiveX ExE编译,那么TIMER控件就不会被MSGBOX挂起,而无论是否在另一线程内.</p>
<p>&nbsp;</p>
<p>这个会很有用......</p>
我就是嗷嗷叫的老马了......

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2009-1-7 22:56:37 | 显示全部楼层
<p><font face="Verdana">你可以先定义一组对象数组:</font></p>
<p><font face="Verdana"></font>&nbsp;</p>
<p><font face="Verdana">dim threadArr() as mT.CMT</font></p>
<p><font face="Verdana"></font>&nbsp;</p>
<p><font face="Verdana">然后用CreateObject来动态创建即可. </font></p>
我就是嗷嗷叫的老马了......

0

主题

9

回帖

0

精华

铜牌会员

积分
262
发表于 2009-3-7 13:57:44 | 显示全部楼层
<p>我也看到这个了,不是太明白怎么创建N个线程,盼望详解!</p>

0

主题

9

回帖

0

精华

铜牌会员

积分
262
发表于 2009-3-7 15:57:15 | 显示全部楼层
<p>发现新开线程的那个窗体,如果用msgbox弹出对话框时,对话框拦截不了mscomm控件的接受事件和时钟的timer事件,哈哈,不错,以后就用这个了,数据采集和其它处理分离……</p>

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2009-3-12 13:33:00 | 显示全部楼层
<p>新开的线程的MSGBOX只能挂起当前线程。</p>
<p>&nbsp;</p>
<p>对于别的线程是不行的。</p>
<p>&nbsp;</p>
<p>只要你的控件放在别的线程,那么就不怕了。</p>
我就是嗷嗷叫的老马了......

0

主题

9

回帖

0

精华

铜牌会员

积分
262
发表于 2009-3-13 09:57:23 | 显示全部楼层
<p>不是,我的mscomm控件也在新开的窗体(线程?)里,也没让同窗体的msgbox给停住呀!</p>

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2009-3-13 16:32:09 | 显示全部楼层
<p>这么怪?</p>
<p>&nbsp;</p>
<p>你试下用一个定时器每秒改变标题为当前时间,再在一个按钮里触发一个MSGBOX看看定时器还走不......</p>
<p>&nbsp;</p>
<p>除非MSCOMM控件的机制与定时器机制不同.....</p>
我就是嗷嗷叫的老马了......

0

主题

9

回帖

0

精华

铜牌会员

积分
262
发表于 2009-3-16 08:13:10 | 显示全部楼层
<p>只要是ActiveX ExE编译,timer就不会被MSGBOX挂起么?ActiveX ExE编译与正常编译的差别在哪里呢?</p>

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2009-3-16 16:36:59 | 显示全部楼层
<p>具体不太清楚.</p>
<p>&nbsp;</p>
<p>从MSDN里的说明来看,有可能是因为"每个对象使用一个线程"的原因.</p>
<p>&nbsp;</p>
<p>如果一些控件创建时使用的是类似CreateObject的机制,那肯定就在另一线程里了.</p>
<p>&nbsp;</p>
<p>我猜想这种可能性比较高.</p>
我就是嗷嗷叫的老马了......

0

主题

9

回帖

0

精华

铜牌会员

积分
262
发表于 2009-3-17 08:21:26 | 显示全部楼层
<p>不太懂了,我功力还不够,研究不了了</p>
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表