Оптимизация Tail Call в Go

См. превосходное сообщение в блоге Эрика Липперта по этой проблеме.

Это вызвано доступом к «измененному закрытию» .

Измените тело вашего цикла на это:

for (int i = 1; i<=3; i++)
{
    int j = i;  // Prevent use of modified closure.
    Thread thread = new Thread(() => testThread("" + j + "__"));

    thread.Start();
}

(Обратите внимание, что для цикла foreach это было исправлено в .Net 4.5, но оно НЕ было исправлено для цикла for .)

32
задан Rene Knop 11 November 2018 в 18:23
поделиться