| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 707 人关注过本帖
标题:使用多线程 改造循环 Command2 等效 Command1过程 哪位大神出手帮忙修改一下 ...
只看楼主 加入收藏
softshl
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-3-29
结帖率:100%
收藏
 问题点数:0 回复次数:7 
使用多线程 改造循环 Command2 等效 Command1过程 哪位大神出手帮忙修改一下
'使用多线程 改造循环 Command2 等效 Command1过程 哪位大神出手帮忙修改一下
Private Sub Command1_Click()
    Dim b(100, 1000)
    Dim i As Long, j As Long
    For i = 1 To 100
        For j = 1 To 1000
            b(i, j) = i * j
        Next
    Next
End Sub

Private Sub Command2_Click()
    Dim b(100, 1000)
    Dim i As Long, j As Long
    For i = 1 To 100
        '创建多线程 xh i,1000
    Next
    If 所有线程执行完毕 Then
    MsgBox "所有线程执行完毕"
    Else
     MsgBox "有未执行完毕线程"
    End If
End Sub
Function xh(ii As Long, jj As Long) As Long
    For ii = 1 To jj
        b(ii, jj) = ii * jj
    Next
End Function
线程之间无联系 这个应用比较简单实际 没弄过多线程搞不定 求大神出手
搜索更多相关主题的帖子: 多线程 
2015-07-02 12:24
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
不知道是要真的并发执行还是象打飞机游戏一样,用户感觉是同时进行。
VB6没有多线程的处理机制,如果一定要试可以了解CreateThread这个API,我也没用过。据说不安全,很容易严重错误,程序崩溃。

大开眼界
2015-07-02 17:11
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:0 
我尝试过多线程,在 ide 里,还能工作,编译后执行立马报错。

授人于鱼,不如授人于渔
早已停用QQ了
2015-07-02 20:50
softshl
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-3-29
收藏
得分:0 
看到别人的关于安全多线程的帖子都是基于过程 这个是函数 这个问题遇到大师级别的才能有答案。 谢谢楼上两位
2015-07-03 01:42
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 4楼 softshl
不知道为什么放弃快钢刀不用,要自己磨石头刀。用任何工具都该是扬长避短吧。
感觉你了解多线程不少,想没想过用C++做DLL,或者下一个Interop Forms Toolkit和混编呢。
看到一篇多线程的VB6代码。http://www.
创建线程不是按函数地址调用,而是按类标识符,感觉很不灵活。可以看看有没有帮助。

大开眼界
2015-07-03 10:23
softshl
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-3-29
收藏
得分:0 
以下是引用lianyicq在2015-7-3 10:23:17的发言:

不知道为什么放弃快钢刀不用,要自己磨石头刀。用任何工具都该是扬长避短吧。
感觉你了解多线程不少,想没想过用C++做DLL,或者下一个Interop Forms Toolkit和混编呢。
看到一篇多线程的VB6代码。http://www.
创建线程不是按函数地址调用,而是按类标识符,感觉很不灵活。可以看看有没有帮助。



 先谢谢你善意的提醒 对于循环改多线程,这个线程的创建初始化开销一定要小不然就失去普遍意义。上面的例子看了一下使用上面的例子速度没明显提升。 以前看过别人关于多线程的实现 讨论怎么安全多线程。大量的FOR循环通过多线程拆解成几个小点的循环。这个技术应用才算变的具有普遍使用。因为几乎每个程序都包含有循环体。
也没有我必须使用这个功能的意思,我写东西原则优先保证能用起来。然后在完善和优化。这个问题作为技术储备心态对待。
2015-07-03 11:15
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 6楼 softshl
我觉得要做的不是一定要创建100个线程来证明使用了多线程技术有多大的速度提升,而是对于不同的硬件条件和软件环境找到适合的线程数。

大开眼界
2015-07-03 14:26
softshl
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-3-29
收藏
得分:0 
以下是引用lianyicq在2015-7-3 14:26:54的发言:

我觉得要做的不是一定要创建100个线程来证明使用了多线程技术有多大的速度提升,而是对于不同的硬件条件和软件环境找到适合的线程数。

真实用的时候要控制 线程熟练为CPU核心+1 再多反而减速
2015-07-05 14:16
快速回复:使用多线程 改造循环 Command2 等效 Command1过程 哪位大神出手帮忙修 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011678 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved