Thread.Abort scheint wegen AcceptSocket @ keine ThreadAbortException auszulös

Ich rufe anChannelServer.ListeningThread.Abort Auf dem folgenden Thread scheint jedoch nichts zu passieren. Ich möchte genauer sein, aber mir fällt nichts mehr ein. Es scheint kein @ zu gebThreadAbortException, das ausgelöst wird, und diese Ausnahme sollte unabhängig vom blockierenden Listener ausgelöst werden (dies funktioniert perfekt bei Threads, die blockierend empfangen).

Important EDIT: Mit einerManualResetEvent.WaitOne Anstatt vonAcceptSocket, wie Lyrik zum Testen vorgeschlagen hat, funktioniert es perfekt. WoherAcceptSocket blockiert dasThreadAbortException?

VERKNÜPFUN: Dieser Forenthread scheint dasselbe Problem zu behandeln, obwohl ich nichts daraus herausfinden kann: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();

Antworten auf die Frage(6)

Ihre Antwort auf die Frage