Многопоточность и замыкания в .NET

Если у меня есть это:

public string DoSomething(string arg)
{
    string someVar = arg;
    DoStuffThatMightTakeAWhile();
    return SomeControl.Invoke(new Func<string>(() => someVar));
}

И этот метод может быть вызван одновременно из нескольких потоков, и один поток застрял вDoStuffThatMightTakeAWhile, а затем второй поток вызываетDoSomething с другимargИзменит ли это значениеsomeVar для всех потоков и, следовательно,DoSomething верните вторую версиюsomeArg на оба звонка, или будет одинsomeVar существуют для каждого потока?

редактировать Я думаю мойAction должен был бытьFunc так отредактировал это.

Ответы на вопрос(3)

Ваш ответ на вопрос