Я использую фоновый рабочий почти ежедневно и прекрасно работает. Сегодня я пришел к примеру, в котором мне нужно было поместить моего фонового работника в отдельный проект, а не тот, который я выполнял, потому что мне нужно было использовать этот класс в двух разных проектах в моем решении. Когда я тестировал кодирование в форме winforms, оно отлично работает, обрабатывая кодирование в фоновом потоке. Когда я пытаюсь сослаться на этот класс из внешнего проекта, кажется, что все мое кодирование работает нормально, но, похоже, что оно ничего не делает в фоновом потоке, как это должно быть, в результате чего мое главное окно блокируется.
Есть ли способ обойти это / что является лучшей практикой для вызовов ASYNC во внешнем классе.
Примечание. Я в основном создал класс, который вы вызываете start, и событие запускается, когда данные готовы, поэтому не похоже, что мой внешний проект ожидает завершения метода.
Заранее спасибо
Пример моего сеньорио
Решение ABC имеет два проекта. Проект A и проект B. Проект A - это мое приложение WPF, а B - моя DLL, выполняющая работу. Внутри проекта А у меня есть
Dim SmartCardData as new Solution.B()
SmartCardData.Start()
Project B has a sub
Public Sub Start()
worker.workerConnect.RunWorkerAsync()
End Sub
Private Sub workerConnect_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles workerConnect.DoWork
'loop 10 seconds connecting to my device
e.Result = true
End Sub
Private Sub workerConnect_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles workerConnect.RunWorkerCompleted
RaiseEvent Scanner_Connected()
End Sub
(Извините, я не могу отобразить мою кодировку как код, а не как обычный текст)