Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共5 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
天一生水 发表于: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楼
有点蓝 发表于:2024/6/11 16:07:00
如果是foxtable的异步函数,不能用:http://www.foxtable.com/mobilehelp/topics/277.htm

Async 、Task这种还没有用过,不清楚。印象中这种玩意是.net 4.5才开始支持的,foxtable应该用不了
3楼
天一生水 发表于:2024/6/11 16:21:00
那这种情况用什么方式能够提高运行速度~
4楼
xubing051018 发表于:2024/6/11 16:30:00
...天,代码运行10个小时,这是多大的数据量,几百万行吗?
5楼
有点蓝 发表于:2024/6/11 16:43:00
如果表A是内部表,这个没有办法了。如果是外部表,建议使用SQLcommand加载表格数据处理

或者直接使用sql,或者存储过程处理
共5 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .01563 s, 2 queries.