Многопоточность и замыкания в .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
так отредактировал это.