При запуске зависает форма

 
0
 
.NET
ava
SDaniel | 18.03.2013, 13:26
Доброго времени суток !

private void StartConnect_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Thread t = new Thread(() =>
                    {
                        this.Dispatcher.Invoke((Action)(() => { StartListener(); }));
                    }
                );
                t.Start();

                /*byte[] buffer = new byte[100];
                while (true)
                {
                    _ns.Read(buffer, 0, 100);
                    SomeText.Text = Encoding.ASCII.GetString(buffer);
                }*/
            }
            catch (Exception ex)
            {
               // Console.WriteLine(ex.ToString());
            }
        }
        void StartListener()
        {
            try
            {
                // Console.WriteLine("Waiting for connection...");
                _listener = new TcpListener(5001);
                _listener.Start();
                //Console.WriteLine("get start...");



                _tc = _listener.AcceptTcpClient();
                _ns = _tc.GetStream();
            }
            catch (Exception ex)
            {
                ex.ToString();
            }
        }



Проблема в том что у меня при нажатии кнопки прослушивания порта и ожидания подключения зависает форма. Я сделал отдельный поток для этого но все ровно не помогает... По идее основной поток входит просто загрузка формы, а в фоновый прослушивание порта, при таком раскладе он не должен зависать, а он зависает, может чо то я не правильно сделал подскажите пожалуйста... 
Kommentare (1)
ava
sgrey | 20.03.2013, 03:51 #
Цитата




{
   this.Dispatcher.Invoke((Action)(() => { StartListener(); }));

}




запускает код в фоновом потоке. не используй Dispatcher, а просто вызывай функцию из потока
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  sgrey   SDaniel
advanced
Absenden