Если у меня есть это:
public string DoSomething(string arg)
{
string someVar = arg;
DoStuffThatMightTakeAWhile();
return SomeControl.Invoke(new Func<string>(() => someVar));
}
И этот метод может быть вызван одновременно из нескольких потоков, и один поток застрял на DoStuffThatMightTakeAWhile
, а затем второй поток вызывает DoSomething
с другим arg
, изменит ли это значение someVar
для всех потоков и, следовательно, DoSomething
вернет вторую версию someArg
при обоих вызовах, или для каждого потока будет существовать один someVar
?
Edit Я думаю, что мое Action
должно было быть Func
, поэтому отредактировал его.