Простой вызов делегата не работает
Привет
Это не работает, и я потратил целый час, пытаясь понять, почему. Есть идеи?
В другом потоке в другом классе (экземпляр)
Main.updateMessages("whatever")
В Main .vb (экземпляр по умолчанию)
Private Delegate Sub MainUpdateDelegate(message As String) Public Sub updateMessages(message As String) If InvokeRequired Then Invoke(New MainUpdateDelegate(AddressOf updateMessages), message) Else ListBox1.Items.Add(message) End If End Sub
Решение: оказывается, проблема заключалась в том, что я должен был передать "Я" из Main в класс и использовать этот экземпляр, а не просто сказать "Main. & lt;method>"
Что я уже пробовал:
MethodInvoker, который не принимает парамы, поэтому бесполезен для этого
Kornfeld Eliyahu Peter
"не работает" - это очень плохое определение любой проблемы...
Что происходит?
Есть какие-то ошибки?
Вы отладили его?
User 13204940
Я знал, что ты это прокомментируешь. Он не обновляет список, я думал, что это было бы очевидно. MsgBox показывает, что этот фрагмент кода действительно доступен. Оказывается, проблема заключалась в том, что я должен был передать "меня" из Main в класс и использовать этот экземпляр, а не просто сказать " Main. & lt;method>"
Kornfeld Eliyahu Peter
Ничто не очевидно, когда задействованы компьютеры и разработчики :-)
Patrice T
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.