例如新建一个内部函数
Dim fr As DataRow = DataTables("ItemInfo").SqlFind("a=1")
在同步里,以上执行100次不出错
在异步里,大约有90次是fr为Nothing。肯定是因为SqlFind里面有共有变量,导致返回出问题
那是因为几次异步函数,没同时发生,你运气好而已!运气不好,你就呵呵哒了,程序直接崩溃,死亡状况如下
完全无法被捕获的异常,日志无法查看出来,直接整个程序崩溃
狐表官方强烈建议:就算是SqlCommmand弄出来的临时DataTable,也不要去Sqlxxx
还是那句话,不要滥用异步!线程创建要250ms,然后这个SqlCmd创建表也要400ms。然而根据5个Web项目的实测统计,大部分的响应请求都在100-200ms之间
Dim fr As DataRow = DataTables("ItemInfo").Find("a=1")
在同步和异步里里,以上执行1000000次都不出错
本质上跟狐表文档里演示的读取全局PublicInteger一个效果,所以是没问题的
Dim cmd As New SqlCommand() cmd.ConnectionName = "Orders" cmd.CommandText = "Sele ct * From Orders Where 1=2" Dim dt as DataTable = cmd.ExecuteReader() dt.LoadFilter="1=1" dt.LoadTop="100 percent" dt.load(False) Output.Show(dt.DataRows.Count) '结果是不是0,说明能加载