Foxtable(狐表)用户栏目专家坐堂 → 老师,我有如下代码,因为记录多较多,运行时间太长,可不可以多线程


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

主题:老师,我有如下代码,因为记录多较多,运行时间太长,可不可以多线程

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


加好友 发短信
等级:一尾狐 帖子:424 积分:5103 威望:0 精华:0 注册:2012/11/16 8:21:00
老师,我有如下代码,因为记录多较多,运行时间太长,可不可以多线程  发帖心情 Post By:2022/10/4 15:31:00 [只看该作者]

老师,我有如下代码,因为记录多较多,运行时间太长,可不可以多线程,异步之类,我实在不懂,可不可以?我这样的代码不知是否适合多线程,老师参否帮改一下代码,我以后也可以慢慢研究
代码如下:
For Each r As Row In Tables("未来人才_方案行").Rows
    Dim drs As List(Of DataRow)
    drs = DataTables("未来人才_专业行").Select("配置名 = '" & r("配置名") & "' And 批次= '" & r("批次") & "' And 所在页码 = '" & r("所在页码") & "' And 院校id= '" & r("院校id") & "' And 专业名称= '" & r("专业名称") & "'") '找出编号为03的产品
    'Output.Show(drs.count)
    If drs.Count = 1 Then
        
        If r("批次") = "提前批A" Then
            drs(0)("学校代号") = r("学校代号")
            drs(0)("专业代号") = r("专业代号")
            drs(0)("备注") = "ok" 
            r("备注") = "ok"
            
        Else 
            drs(0)("学校代号") = r("院校代码")
            drs(0)("专业代号") = r("专业代码")
            drs(0)("学制") = r("学制")
            drs(0)("备注") = "ok" 
            r("备注") = "ok"
        End If
        
    End If 
    
Next
[此贴子已经被作者于2022/10/4 16:07:20编辑过]

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


加好友 发短信
等级:超级版主 帖子:110333 积分:561507 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/6 9:28:00 [只看该作者]

1、可以先试试:
2、多线程参考:http://www.foxtable.com/mobilehelp/topics/3268.htm,注意:http://www.foxtable.com/mobilehelp/topics/277.htm凡是在主线程中创建的对象,例如Table、Datatable,窗口及窗口控件,菜单及菜单组件,都不应该在异步函数中调用。),需要改使用使用SQLcommand跳跃sql查询数据

3、如果数据多到一定程度,可以:
1)单独做个项目,放到服务器独自运行一些费时的操作
2)使用使用SQL更新,大概这样:http://www.foxtable.com/webhelp/topics/0690.htm
UPDATE {未来人才_专业行},{未来人才_方案行} SET {未来人才_专业行}.学校代号 = {未来人才_方案行}.学校代号, {未来人才_专业行}.专业代号 = {未来人才_方案行}.专业代号 ,..... WHERE {未来人才_专业行}.[配置名] = {未来人才_方案行}.[配置名] and {未来人才_专业行}.[批次] = {未来人才_方案行}.[批次] and ..........


 回到顶部