Foxtable(狐表)用户栏目专家坐堂 → 对于HttpRequest一律使用异步方式进行处理,请问这样处理有什么隐患吗?


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

主题:对于HttpRequest一律使用异步方式进行处理,请问这样处理有什么隐患吗?

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


加好友 发短信
等级:四尾狐 帖子:862 积分:10841 威望:0 精华:0 注册:2016/5/6 14:34:00
对于HttpRequest一律使用异步方式进行处理,请问这样处理有什么隐患吗?  发帖心情 Post By:2020/5/8 7:06:00 [只看该作者]

包括Web数据源
[此贴子已经被作者于2020/5/8 7:14:17编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110792 积分:563898 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/8 8:34:00 [只看该作者]

使用得当就不会有问题:http://www.foxtable.com/mobilehelp/topics/277.htm。数据库操作建议都使用SQLcommand

Web数据源默认就是异步的,不需要另外处理

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


加好友 发短信
等级:六尾狐 帖子:1279 积分:7953 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:862 积分:10841 威望:0 精华:0 注册:2016/5/6 14:34:00
  发帖心情 Post By:2020/5/8 8:58:00 [只看该作者]

感谢两位大佬的经验

 回到顶部
帅哥哟,离线,有人找我吗?
浙江仔
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By: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

 

按照这个这么改,在异步中使用有没有实际作用?

 


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110792 积分:563898 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/8 11:40:00 [只看该作者]

这其实就是使用的SQLCommand,只不过包装了一下,不考虑事务的情况下肯定是可以使用的

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


加好友 发短信
等级:六尾狐 帖子:1279 积分:7953 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By: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编辑过]

 回到顶部