Взаимодействует с потоком пользовательского интерфейса из метода обратного вызова Async?

У меня есть метод, который вызывается асинхронно, когдаSystem.Net.Sockets.NetworkStream.BeginRead завершается.

 skDelegate = New AsyncCallback(AddressOf skDataReceived)
 skStream.BeginRead(skBuffer, 0, 100000, skDelegate, New Object)

В этом методе обратного вызова мне нужно взаимодействовать с потоком пользовательского интерфейса.

Sub skDataReceived(ByVal result As IAsyncResult)
    CType(My.Application.OpenForms.Item("frmMain"), frmMain).refreshStats(d1, d2)
End Sub

Это вызывает исключение после завершения метода. (когда End Sub выполнен)

Операция Undo обнаружила контекст, отличный от того, который был применен в соответствующей операции Set. Возможная причина в том, что контекст был установлен в потоке, а не восстановлен (отменен).

Итак, как мне взаимодействовать с потоком пользовательского интерфейса из метода обратного вызова? Что я делаю неправильно?

Ответы на вопрос(4)

Ваш ответ на вопрос