不断运行队列

时间:2012-07-20 19:37:22

标签: vb.net queue

我不确定这是否是正确的方法,但我要做的是创建一个不断运行的队列,以便我可以继续添加内容。基本上我希望能够将东西添加到队列中,然后以先到先得的方式处理它。我有以下代码:

    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(...)

由于

1 个答案:

答案 0 :(得分:0)

这样的自定义方法可行。或许,考虑使用ThreadPool.QueueUserWorkItem

ThreadPool.QueueUserWorkItem -- MSDN