0 / 0 / 1
Регистрация: 26.10.2014
Сообщений: 90
1

Потоки Thread: Необработанное исключение типа "System.NullReferenceException"

11.02.2015, 19:16. Показов 1512. Ответов 6
Метки нет (Все метки)

Такова проблема

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
thrListener = new Thread(KeepListening);
thrListener.Start();
...
public void KeepListening()
{
   while (ServRunning == true)
   {
       tcpClient = tlsClient.AcceptTcpClient();
       // Create a new instance of Connection
       Connection newConnection = new Connection(tcpClient);
 
    }
}
Когда пытаюсь остановить поток
C#
1
2
3
4
5
public void StopListening(int t)
        {
            ServRunning = false;
            thrListener.Abort();
        }
то выползает ошибка
Необработанное исключение типа "System.NullReferenceException"

Дополнительные сведения: Ссылка на объект не указывает на экземпляр объекта.
Как с этим бороться?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2015, 19:16
Ответы с готовыми решениями:

Необработанное исключение типа "System.Net.Sockets.SocketException" в System.dll
Доброго времени суток! Есть следующая статья: Разработка прокси-сервера на C# В самом конце есть...

Необработанное исключение типа "System.ObjectDisposedException" в mscorlib.dll
Добрый день!Подскажите пожалуйста.Возникает ошибка Необработанное исключение типа...

Необработанное исключение типа "System.Reflection.TargetInvocationException"
Добрых времени суток. Есть асинхронный сервер, к которому подулючается клиент, передает на серв...

Необработанное исключение типа "System.IO.IOException" произошло в mscorlib.dll
Ребят подскажите проблему при сохранение через SaveFileDialog() выдает ошибку: Необработанное...

6
908 / 812 / 332
Регистрация: 03.02.2015
Сообщений: 5,238
Записей в блоге: 9
11.02.2015, 22:27 2
А какая ссылка не указывает на объект?
0
99 / 39 / 12
Регистрация: 30.01.2011
Сообщений: 129
12.02.2015, 13:09 3
C#
1
thrListener
надо полагать.
0
0 / 0 / 1
Регистрация: 26.10.2014
Сообщений: 90
03.03.2015, 22:19  [ТС] 4
Sanya_sa, Martovskij, ту проблему решил, но теперь вопрос по
C#
1
tcpClient = tlsClient.AcceptTcpClient();
Я его не могу остановить. Прочитал в инете, что AcceptTcpClient() - это блокирующий метод, который нельзя остановить, советуют использовать BeginAcceptTcpClient/EndAcceptTcpClient, но я не понимаю, как их тут правильно записать, чтоб система работала, в этом-то и заключается сам вопрос
0
99 / 39 / 12
Регистрация: 30.01.2011
Сообщений: 129
04.03.2015, 07:47 5
Первая ссылка в гугле с примером
0
386 / 319 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
04.03.2015, 16:27 6
Запускайте ожидание клиента в отдельном потоке. Когда нужно - закройте его.
0
0 / 0 / 1
Регистрация: 26.10.2014
Сообщений: 90
04.03.2015, 18:03  [ТС] 7
Решил проблему! )

Решил её вот таким матёрым способом:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
while (ServRunning == true)
  { // сам цикл, всё, как положено
   try // и тут само изменение
  {
   tcpClient = tlsClient.AcceptTcpClient(); // эта гадость, которая мешает
   Connection newConnection = new Connection(tcpClient); // само принятие клиента (как и раньше)
  } // но если будет ошибка
   catch (SocketException e) // самого SocketException, так сказать
  {
    if ((e.SocketErrorCode == SocketError.Interrupted)) // спрашиваем, идёт ли ошибка на почве ошибки сокетов (то-есть блокирующего метода)
  {
      tcpClient = null; // тогда приравниваем его к null
      thrListener.Abort(); // и закрываем этот поток
  }
 }
 }
Всем спасибо!

Тема закрыта!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2015, 18:03
Помогаю со студенческими работами здесь

Отправка почты: "необработанное исключение отправки почты в system.Dll"
подскажите - вот пример на C#, но он мне пишет "необработанное исключение отправки почты в...

Выдано исключение типа "System.OutOfMemoryException"
Доброго времени суток. Есть приложение, периодически (довольно редко) ловлю Unhandled Exception...

Исключение типа "System.StackOverfliwException"
Добрый день. В форма есть ТекстБокс и Кнопка. Ввожу текст в бокс, жму кнопку, функция обрабатывает...

System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
Здравствуйте. В 59 строке выскакивает исключение NullReferenceException, в чем проблема? using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru