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

Узнай цену своей работы

Формулировка задачи:

Такова проблема
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);
 
    }
}
Когда пытаюсь остановить поток
public void StopListening(int t)
        {
            ServRunning = false;
            thrListener.Abort();
        }
то выползает ошибка
Необработанное исключение типа "System.NullReferenceException" Дополнительные сведения: Ссылка на объект не указывает на экземпляр объекта.
Как с этим бороться?

Решение задачи: «Потоки Thread: Необработанное исключение типа "System.NullReferenceException"»

textual
Листинг программы
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(); // и закрываем этот поток
  }
 }
 }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы