我正在 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
我看到像 Thread Starting Thread Started 这样的日志文件
但没有在“UpdateQue”功能中打印的其他消息我也尝试了其他方法。1. 使用定时器:与上述相同的问题 2. 使用 Thread.Timers:与上述相同的问题 3. 直接从 application_start 调用 UpdateQueue 函数:进入 UpdateQue 函数并写入日志条目。
我无法弄清楚为什么服务器出现问题。我在我的公共 IP(不是来自托管服务提供商)中使用 IIS 7,因此我可以根据需要进行任何更改。