首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行异步操作

执行异步操作
EN

Stack Overflow用户
提问于 2010-07-26 15:34:48
回答 1查看 124关注 0票数 0

我读过关于执行异步操作的文章,我发现它可以在SQL命令执行端(在执行SQL命令的过程中,通过添加等待AsynchResult的等待句柄来处理)或从UI执行端(通过使用指向方法的委托,然后开始异步调用方法)来完成,如下所示:

SQL端(在SQL命令中使用wait handle和DELAYFOR ):http://msdn.microsoft.com/en-US/library/yws6262h%28v=VS.80%29.aspx

UI端:http://msdn.microsoft.com/en-US/library/2e08f6yc%28v=VS.80%29.aspx

但我不知道在性能和运行时哪一个更好?

有没有人能告诉我在性能方面的区别?这种技术和线程池队列技术哪一个更好呢?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-26 16:05:26

假设您所说的“SQL端”指的是SqlCommand对象上的BeginXXX EndXXX方法,而UI只是指异步执行的委托--简单地使用其中一种方法与使用另一种方法并没有提供性能上的差异。两者之间的性能差异仅与您运行的代码有关- SQL端只会异步执行命令,而UI端可能会有许多您提供的其他代码。

在许多情况下,在比SQL命令更高的级别上提供异步操作就足够了。在某些情况下,比如您的数据访问层希望一次启动多个命令,那么最好使用SqlCommand方法。

希望这就是你想要的东西。

请注意,异步执行委托(Delegate.BeginInvoke)或BeginXXX方法将使用ThreadPool线程。使用委托和线程池之间的区别在这里快速概述:

http://www.toadz.dk/2010/01/delegate-begininvoke-vs-threadpool-queueuserworkitem/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3333001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档