Foxtable(狐表)用户栏目专家坐堂 → 关于多线程的问题


  共有1916人关注过本帖树形打印复制链接

主题:关于多线程的问题

帅哥哟,离线,有人找我吗?
ap9709130
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
关于多线程的问题  发帖心情 Post By:2018/5/28 17:44:00 [只看该作者]

老师,

我想用运用多线程来做各种统计表,现在遇到这个问题。

比如我的函数 : Functions.Execute("统计",a) 运行没有问题,可以生成我想要的统计表

然后我把它变成多线程

Public Sub thread_sub2(ByVal e As Object)
    functions. Execute("统计",e)
End Sub


Dim nthread As New System.Threading.Thread(AddressOf thread_sub2)
nthread.start(a)

但是会出错,出错提示:


图片点击可在新窗口打开查看此主题相关图片如下:错误.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2018/5/28 17:45:00 [只看该作者]

我在函数中生成表的方法是这样的:

Dim q As new QueryBuilder
q.TableName = "利润查询"
q.C
q.SelectString = lm & " " & bm & " " & tj
q.Build


用多线程要怎么才能生成相关的表呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/28 18:42:00 [只看该作者]

多线程访问同一个资源(foxtable的资源,比如 addnew啊、save啊 等)的时候,会报错的,没办法。

 

必须单线程处理才行,如果希望后台处理,你在循环的过程中加入application.doevents,可以让你继续做其它操作。


 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2018/5/29 9:38:00 [只看该作者]

甜老师

能再说的详细一些吗?怎么才能利用后台,并行运行。

我的情况是这样,因为生成统计的表比较复杂,我是用SQL语句生成的,大约要 20~30 秒,另外,我还要下载比较多的订单明细,也要40秒左右,但是这两个过程是完全独立的。

如果可以同步进行,那么经过优化可能 30秒以内可以全部搞定。如果顺序来,肯定超过1分钟,感觉不是太好。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/29 9:40:00 [只看该作者]

请做一个具体实例发上来说明你要做什么。

 

只要访问到foxtable资源,都不能用多线程处理,除非没有用到。


 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2018/5/29 14:17:00 [只看该作者]

甜老师

因为是公司的系统,没有办法做实例。我就是想用一个外部数据源,然后能用多线程 来实际 sql 语句 生成两个datatable.然后把相关的信息在窗口中展示出来。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/29 14:27:00 [只看该作者]

没办法,你用到foxtable资源都不能使用多线程啊。

 

生成sql语句应该没问题的;不要一起生成table和显示出来;必须一个一个table生成。

 

 


 回到顶部