簡體   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