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 に答える