我正在寫一個global.asax文件中的函數,它需要從application_start中聲明的線程中調用。 它在我的調試模式下工作正常,但是在託管時不會調用回調函數。global.asax函數沒有從Application_Start調用
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
writeLog("Application Initialized")
writeLog("Thread is starting....")
Dim T As New Threading.Thread(AddressOf UpdateQueue)
T.Start()
writeLog("Thread Started....")
End Sub
Sub UpdateQueue()
writeLog("UpdateQueue entry")
While Q.Count > 0
' Some logic
End While
writeLog("UpdateQueue going for idle state")
Threading.Thread.Sleep(5000)
UpdateQueue()
End Sub
我看到像 線程開始 主題的日誌文件開始
但都印在「UpdateQue」功能 沒有其他的消息我已經嘗試過其他方法也。 1.使用定時器:與上面相同的問題 2.使用Thread.Timers:與上述問題相同 3.直接從application_start調用UpdateQueue函數:輸入UpdateQue函數並寫入日誌條目。
我無法弄清楚爲什麼在服務器的問題。我在公共IP(不是來自主機提供商)使用IIS 7,所以我可以根據需要進行任何更改。
最終你會得到一個堆棧溢出由於UpdateQueue'的'遞歸。 –
'writeLog()'裏有什麼?也許有鎖。 –
writeLog只是寫入一個文件,而不是自己鎖定 – AjayR