Thread.Abort no parece lanzar una ThreadAbortException debido a AcceptSocket

Estoy llamandoChannelServer.ListeningThread.Abort en el siguiente hilo, sin embargo, nada parece suceder. Me gustaría ser más específico, pero no puedo pensar en nada más. Parece que no hayThreadAbortException que se lanza, y esta excepción se debe lanzar independientemente del oyente de bloqueo (funciona perfectamente en subprocesos que reciben de forma bloqueada).

EDICIÓN importante: Con unManualResetEvent.WaitOne en lugar deAcceptSocket, como Lyrik ha sugerido para las pruebas, funciona perfectamente. CómoAcceptSocket bloquea elThreadAbortException?

ENLAZAR: Este hilo del foro parece discutir el mismo problema, aunque no puedo resolver nada:http://www.tek-tips.com/viewthread.cfm?qid=319436&page=413

ChannelServer.ListeningThread = new Thread(new ThreadStart(delegate()
{
    Log.Inform("Waiting for clients on thread {0}.", Thread.CurrentThread.ManagedThreadId);

    while (true)
    {
        try
        {
            new Thread(new ParameterizedThreadStart(ChannelClientHandler.Initialize)).Start(ChannelServer.Listener.AcceptSocket());
        }
        catch (ThreadAbortException)
        {
            Log.Inform("Aborted client listening thread {0}.", Thread.CurrentThread.ManagedThreadId);
            break;
        }
    }
}));
ChannelServer.ListeningThread.Start();

Respuestas a la pregunta(3)

Su respuesta a la pregunta