0

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

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

谢谢

4

1 回答 1

0

像这样的自定义方法可以工作。考虑一下,也许,使用ThreadPool.QueueUserWorkItem

ThreadPool.QueueUserWorkItem——MSDN

于 2012-07-21T02:16:57.047 回答