Различное поведение в Отладке и Выпуске с ThreadAbortException и взаимоблокировкой - PullRequest
0 голосов
/ 28 июня 2019

Пожалуйста, скомпилируйте этот код с Visual Studio 2017 (возможно, и с другими версиями) в конфигурациях Debug и Release:

static void Main(string[] args)
{
    var thread = new System.Threading.Thread(() =>
    {
        while (true)
        {
            try
            {
                Thread.Sleep(int.MaxValue);
            }
            catch { }
        }
    });

    thread.Start();
    thread.Join(1000);
    thread.Abort();
    thread.Join();
}

А потом кто-то объясняет мне, почему заканчивается в режиме отладки и приводит к тупику в версии ?

Обновление . Добавление дополнительного блока «catch» исправит это (все еще не знаю почему):

catch (ThreadAbortException) { break; }

Update2 . И что? Ни одна обезьяна не знает ответа?

...