Добрый день, пишу первое приложение на WPF.
Возникла пара вопросов, касательно подвисания формы во время первого открытия.
Инициализацию IP телефона выполняю в отдельном потоке
Подключение к Серверу тоже в отдельный поток
Что заставляет подвисать форму, не пойму.
Код:
Imports System.Windows.Threading
Imports System.Threading
Class MainWindow
Private Current As System.Threading.SynchronizationContext ' Объявляю синхронизатор
Private Sub load(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
Current = System.Threading.SynchronizationContext.Current ' синхронизатор потока
Dim potok_SoftPhone As New System.Threading.Thread(AddressOf sync_InitSIPServer) ' создаём новый поток
Dim potok_CliEnt_Server As New System.Threading.Thread(AddressOf sync_InitClient_Server) ' создаём новый поток
potok_SoftPhone.IsBackground = True ' делаем его фоновым
potok_CliEnt_Server.IsBackground = True ' делаем его фоновым
potok_CliEnt_Server.Start() ' Запускаем поток
potok_SoftPhone.Start() ' Запускаем поток
End Sub
Private Sub sync_InitSIPServer()
Current.Post(AddressOf InitSIPServer, True)
End Sub
Private Sub sync_InitClient_Server()
Current.Post(AddressOf InitClient_Server, True)
End Sub
Private Sub InitClient_Server(sender As Boolean)
If CLIENT.Connect("192.168.1.100", 13000, AscW("+")) Then ' Если подключение удачное шлем запрос серверу
CLIENT.Send("Start", "Hello!")
End If
End Sub
Private Sub InitSIPServer(sender As Boolean)
'Очень много кода
End Sub
End Class
Возникла пара вопросов, касательно подвисания формы во время первого открытия.
Инициализацию IP телефона выполняю в отдельном потоке
Подключение к Серверу тоже в отдельный поток
Что заставляет подвисать форму, не пойму.
Код:
Imports System.Windows.Threading
Imports System.Threading
Class MainWindow
Private Current As System.Threading.SynchronizationContext ' Объявляю синхронизатор
Private Sub load(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
Current = System.Threading.SynchronizationContext.Current ' синхронизатор потока
Dim potok_SoftPhone As New System.Threading.Thread(AddressOf sync_InitSIPServer) ' создаём новый поток
Dim potok_CliEnt_Server As New System.Threading.Thread(AddressOf sync_InitClient_Server) ' создаём новый поток
potok_SoftPhone.IsBackground = True ' делаем его фоновым
potok_CliEnt_Server.IsBackground = True ' делаем его фоновым
potok_CliEnt_Server.Start() ' Запускаем поток
potok_SoftPhone.Start() ' Запускаем поток
End Sub
Private Sub sync_InitSIPServer()
Current.Post(AddressOf InitSIPServer, True)
End Sub
Private Sub sync_InitClient_Server()
Current.Post(AddressOf InitClient_Server, True)
End Sub
Private Sub InitClient_Server(sender As Boolean)
If CLIENT.Connect("192.168.1.100", 13000, AscW("+")) Then ' Если подключение удачное шлем запрос серверу
CLIENT.Send("Start", "Hello!")
End If
End Sub
Private Sub InitSIPServer(sender As Boolean)
'Очень много кода
End Sub
End Class