[英]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.