繁体   English   中英

asp.net/c#中的主题

[英]thread in asp.net/c#

我想在user_login Event或Form_load Event上创建一个线程。 在这个线程中我想调用一个类函数来执行一些sql语句,并且用户不必等待结果或后台进程完成,他只是被导向他想要的页面让我说出我的个人资料或者什么。 我正在使用ASP.NET,C#。

对于它的价值,这是一个坏主意。 IIS可以通过多种方式终止后台线程(IIS重新启动,应用程序池重新启动等等,所有这些都是IIS的正常预期行为),结果是您的数据库事务会以静默方式回滚。

如果需要可靠地执行这些查询,则应在请求中执行它们或将它们发送到Windows服务或其他长期进程。 这并不意味着用户无法获得有关进度的反馈 - IIS请求本身可以通过AJAX调用执行。

以下是C#中异步调用的一些示例。

http://support.microsoft.com/kb/315582

模式的选择取决于您的需求。 请注意,在示例5中,如果您不希望在操作完成时执行任何代码,则可以提供null作为回调。

您可以通过使用Thread.Start在线程中调用您的方法来完成此操作。 默认情况下,IsBackground为false,这会阻止您的应用程序停止。

http://msdn.microsoft.com/en-us/library/7a2f3ay4.aspx

但是,因为你的大部分时间都可能花在数据库调用上。 为什么不在没有回调的情况下异步执行它? 在一个SqlCommand上,它将是BeginExecuteNonQuery。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM