Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> При запуске зависает форма 
:(
    Опции темы
SDaniel
Дата 18.3.2013, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.3.2012

Репутация: нет
Всего: нет



Доброго времени суток !
Код

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();
            }
        }



Проблема в том что у меня при нажатии кнопки прослушивания порта и ожидания подключения зависает форма. Я сделал отдельный поток для этого но все ровно не помогает... По идее основной поток входит просто загрузка формы, а в фоновый прослушивание порта, при таком раскладе он не должен зависать, а он зависает, может чо то я не правильно сделал подскажите пожалуйста... 
PM MAIL   Вверх
sgrey
Дата 20.3.2013, 03:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 15.4.2006

Репутация: нет
Всего: 4



Цитата

Код

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


запускает код в фоновом потоке. не используй Dispatcher, а просто вызывай функцию из потока

Это сообщение отредактировал(а) sgrey - 20.3.2013, 03:51
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0558 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.