Закрытие переменной цикла в C#

Из этого поста мне сказали, что следующий раздел кода пострадал от «вопиющего акта закрытия переменной цикла».

    foreach (Canidate canidate in allCanidates)
    {
        Thread newThread = new Thread(delegate()
        {
            BusyWait(canidate);
        });

        newThread.Start();
    }

Я изменил его на это:

foreach (Canidate canidate in allCanidates)
        {
            var can = canidate;
            Thread newThread = new Thread(delegate()
            {                 
                BusyWait(can);
            });

            newThread.Start();
        }

Но мой босс продолжает настаивать на том, что он будет страдать от тех же проблем. Я использовал эту ссылку, чтобы попытаться решить эту проблему. Может ли кто-нибудь помочь мне правильно решить проблему, чтобы мой код выполнялся правильно. эта проблема для меня новая, и я не уверен, что полностью ее понимаю.

6
задан Community 23 May 2017 в 12:24
поделиться