Загрузите тяжелую форму в фоновом потоке и перенесите контекст потока в основную после завершения - PullRequest
0 голосов
/ 31 марта 2019

У меня есть основная форма, которая загружается быстро, но мне нужно также загрузить вторую форму в фоновом режиме.2-я форма имеет встроенный браузер, который должен предварительно загрузить веб-страницу.Я хотел бы запустить эту 2-ую форму в отдельном потоке и перенести его в основной поток, как только он будет полностью загружен.Пока загрузка кнопки для доступа к этой форме отключена

В моей основной форме, показанной на сабе, я пробовал это:

    Private Sub frmMain_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown

        Dim trd As New Thread(New ParameterizedThreadStart(Sub(t As Thread)
            Me.frmAlphaTicket = New frmAlphaticket
            frmAlphaTicket.Opacity = 0
            frmAlphaTicket.Show()
            Thread.Sleep(1000)
            t.Join()
                              End Sub))
        trd.Priority = ThreadPriority.Lowest
        trd.Start(trd)

    End Sub

t.Join() - неправильный подход, поскольку он только замораживает текущуюпоток, пока вызывающий поток не завершится.Он не меняет контекст потока, поэтому я получаю исключение пользовательского интерфейса ThreadException.

Как я могу загрузить 2-ю форму на фоне, чтобы она не замедляла мою основную форму?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...