以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 对于HttpRequest一律使用异步方式进行处理,请问这样处理有什么隐患吗? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=149626) |
-- 作者:Hopenight -- 发布时间:2020/5/8 7:06:00 -- 对于HttpRequest一律使用异步方式进行处理,请问这样处理有什么隐患吗? 包括Web数据源 [此贴子已经被作者于2020/5/8 7:14:17编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/5/8 8:34:00 -- 使用得当就不会有问题:http://www.foxtable.com/mobilehelp/topics/277.htm。数据库操作建议都使用SQLcommand Web数据源默认就是异步的,不需要另外处理
|
-- 作者:chen37280600 -- 发布时间:2020/5/8 8:36:00 -- 1线程启动和销毁,需要200ms左右。系统线程数可以非常多 2数据库的连接和销毁,大概需要250ms。数据库线程资源非常宝贵,开得多,软件一定会内存崩。记得close即可。 3一般sql执行大概需要170ms 如果你主线程里修改一个简单的数据库,直接sqlReplaceFor,只需要170ms 如果你异步+事务+sql,需要200+250+170ms 1异步里不能修改主线程的变量,不过可以读 2异步里不能用狐表原生的事务,要自己new一个OleDb的链接去启动事务 3异步里不能用狐表DataTables相关的SQLxxx方法,狐表的便捷基本上没了。只剩下原生.net代码 4异步一定要记得写e.handle =true,不然系统不报错,但实际上没做完就被干掉 [此贴子已经被作者于2020/5/8 8:37:06编辑过]
|
-- 作者:Hopenight -- 发布时间:2020/5/8 8:58:00 -- 感谢两位大佬的经验 |
-- 作者:浙江仔 -- 发布时间:2020/5/8 11:19:00 -- 以下是引用chen37280600在2020/5/8 8:36:00的发言:
1线程启动和销毁,需要200ms左右。系统线程数可以非常多 2数据库的连接和销毁,大概需要250ms。数据库线程资源非常宝贵,开得多,软件一定会内存崩。记得close即可。
3一般sql执行大概需要170ms
如果你主线程里修改一个简单的数据库,直接sqlReplaceFor,只需要170ms
如果你异步+事务+sql,需要200+250+170ms
1异步里不能修改主线程的变量,不过可以读
2异步里不能用狐表原生的事务,要自己new一个OleDb的链接去启动事务
3异步里不能用狐表DataTables相关的SQLxxx方法,狐表的便捷基本上没了。只剩下原生.net代码
4异步一定要记得写e.handle =true,不然系统不报错,但实际上没做完就被干掉
[此贴子已经被作者于2020/5/8 8:37:06编辑过]
大神请教一下: http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=129203&skin=0
按照这个这么改,在异步中使用有没有实际作用?
|
-- 作者:有点蓝 -- 发布时间:2020/5/8 11:40:00 -- 这其实就是使用的SQLCommand,只不过包装了一下,不考虑事务的情况下肯定是可以使用的 |
-- 作者:chen37280600 -- 发布时间:2020/5/8 12:01:00 -- 其实就这个问题http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=149567&replyID=&skin=1 ,连新类都不用封装。只要狐爸看下这几个SQLxxx方法的源码,有没有公共变量会互相污染,就知道能否用在异步了。 按照有点蓝的说法,只是包装SqlCommand,貌似是没问题,不过他也还没看源码,最好还是作者来回答。不然真产生数据干扰写错,你很难发现,发现了也无法修正数据。
帮我顶上方这个链接帖子上去,让狐爸回复一下就搞定了。 [此贴子已经被作者于2020/5/8 12:01:23编辑过]
|