Foxtable(狐表)用户栏目专家坐堂 → [求助]这种情况能用异步函数吗


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

主题:[求助]这种情况能用异步函数吗

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]这种情况能用异步函数吗  发帖心情 Post By:2024/6/11 16:03:00 [显示全部帖子]

蓝老师好!
遍历表A的行数据,去更新表B中的列值,因为数据量较大,代码运行需10多个小时,我想问一下老师,这种情况适合利用异步函数吗?另外,我改写了一段AI给的异步函数代码,不知道对不对?
1、
For Each dr As DataRow In DataTables("表A").DataRows
    DataTables("表B").SQLReplaceFor("列1", dr("列1"), Filter0)
    DataTables("表B").SQLReplaceFor("列2", dr("列2"), Filter0)
    DataTables("表B").SQLReplaceFor("列3", dr("列3"), Filter0)
    DataTables("表B").SQLReplaceFor("列4", dr("列4"), Filter0)
    DataTables("表B").SQLReplaceFor("列5", dr("列5"), Filter0)
    ......            
Next
----------
2、
' 定义异步函数
Async Function UpdateTrendDataAsync() As Task
    For Each dr As DataRow In DataTables("表A").DataRows
        Dim updateTask As Task = Task.Run(Sub()
                                    DataTables("表B").SQLReplaceFor("列1", dr("列1"), Filter0)
                                    DataTables("表B").SQLReplaceFor("列2", dr("列2"), Filter0)
                                    DataTables("表B").SQLReplaceFor("列3", dr("列3"), Filter0)
                                    DataTables("表B").SQLReplaceFor("列4", dr("列4"), Filter0)
                                    DataTables("表B").SQLReplaceFor("列5", dr("列5"), Filter0)
                                        End Sub)

        Await updateTask
    Next
End Function

' 调用异步函数
Dim updateTask As Task = UpdateTrendDataAsync()

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2024/6/11 16:21:00 [显示全部帖子]

那这种情况用什么方式能够提高运行速度~

 回到顶部