我不确定这是否是正确的方法,但我要做的是创建一个不断运行的队列,以便我可以继续添加内容。基本上我希望能够将东西添加到队列中,然后以先到先得的方式处理它。我有以下代码:
Namespace Managers
Public Class SQLQueueManager
Public Shared Sqlitems As New Queue
Public Sub StartProcessing()
Dim t1 As New Threading.Thread(AddressOf Process)
t1.Start()
End Sub
Public Shared Sub Process()
Do
SyncLock Sqlitems.SyncRoot
If Sqlitems.Count > 0 Then
SqlManager.ExecNonQuery(Sqlitems.Peek)
Sqlitems.Dequeue()
End If
End SyncLock
Loop
End Sub
End Class
End Namespace
我使用以下命令启动此队列:
Dim sqlT As Thread
sqlT = New Thread(AddressOf SQLQueueManager.Process)
sqlT.Start()
我使用以下方法将项目添加到队列中:
SQLQueueManager.Sqlitems.Enqueue(...)
由于
答案 0 :(得分:0)
这样的自定义方法可行。或许,考虑使用ThreadPool.QueueUserWorkItem
: