Как устранить исключение ненаблюдаемой задачи, выдаваемое TcpListenerC#

Место общения программистов C#
Ответить
Anonymous
 Как устранить исключение ненаблюдаемой задачи, выдаваемое TcpListener

Сообщение Anonymous »

Я написал образец модульного теста с помощью TcpListener. Он отлично работает в .NET Framework 4.8, но не работает в Windows .Net8.0.
TcpListener tcpListener;

TaskScheduler.UnobservedTaskException += HandleUnhandledException;

public void TestTcpListener()
{
tcpListener = new TcpListener(new IPEndPoint(IPAddress.Any, 12345));
tcpListener.Start();
tcpListener.BeginAcceptTcpClient(null, null);
tcpListener.Stop();
}

Я подписался на событие UnobservedTaskException TaskScheduler, чтобы перехватить исключение, а затем запускаю GC.Collect() и GC.WaitForPendingFinalizers() в конце этого UT (в методе TearDown). Я получил это сообщение об ошибке.
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The I/O operation has been aborted because of either a thread exit or an application request.)
 ---> System.Net.Sockets.SocketException (995): The I/O operation has been aborted because of either a thread exit or an application request.
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
   at System.Net.Sockets.TcpListener.g__WaitAndWrap|32_0(ValueTask`1 task)
   --- End of inner exception stack trace ---



Подробнее здесь: https://stackoverflow.com/questions/793 ... cplistener
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»