Member 11856456 Ответов: 1

Как использовать пользовательский оператор match merge с потоковой обработкой?


На данный момент у меня есть оператор слияния совпадений, который использует совпадение от 3 до 5 частей. это занимает приблизительно 440 секунд, чтобы завершить 152,000 играм. Тем не менее, я хочу сделать резьбу, чтобы уменьшить количество времени, которое она занимает.

для моего продевания нитей у меня есть вот это:

Public Sub create_threads()

       Dim Threads As New List(Of Thread)
       Dim x As Long
       Dim newthread As String

       x = Temptable.Rows.Count / Environment.ProcessorCount
       x = Math.Ceiling(x)

       For total = 0 To Environment.ProcessorCount - 1
           I3 = x * total
           I4 = x * (total + 1)
           newthread = "thread" + total.ToString
           Dim t As New Thread(Sub() Match_Merge())
           t.Name = newthread
           Threads.Add(t)
           t.Start()
       Next

       For Each t As Thread In Threads
           t.Join()
       Next

   End Sub


Проблема, которая, как мне кажется, у меня есть, заключается в том, что она не нарушает работу. То, что я пытаюсь сделать, - это установить сценарий динамического метода. Поэтому при вызове match merge это будут отдельные его экземпляры.

Что я уже пробовал:

Я изучал создание динамических методов, пытаясь следовать этому примеру: .net - вызов метода внутри динамического метода в VB.NET - переполнение стека[^ но это не сработало.

1 Ответов

Рейтинг:
0

Christian Graus

Если вы хотите выполнить одну задачу в разных потоках, вам явно нужно придумать способ ее пакетной обработки и передать разные ее части разным потокам. Просто вызов одного и того же метода X раз ничего не ускорит