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