Потоки 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(); // и закрываем этот поток
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д