나는 경우이 : 다른와 DoSomething
을멀티 스레딩 및 .NET에서 폐쇄
public string DoSomething(string arg)
{
string someVar = arg;
DoStuffThatMightTakeAWhile();
return SomeControl.Invoke(new Func<string>(() => someVar));
}
그리고이 방법은 여러 스레드에서 동시에 호출 할 수 있으며, 하나 개의 스레드는 DoStuffThatMightTakeAWhile
에 갇혀 한 다음 두 번째 스레드 호출 arg
이면 모든 스레드에 대해 someVar
의 값이 변경되므로 DoSomething
은 두 번째 호출에서 someArg
의 두 번째 버전을 반환하거나 각 스레드에 대해 하나의 someVar
이 존재합니까?
Action
은 Func
이어야한다고 생각합니다.
그래서'string myVar; '와 같은 선언은'new' 키워드로 객체를 생성하는 것처럼'myVar'를 __create__ 할 것입니까? 이것은 재귀 호출에도 적용됩니까 ('DoSomething'이'DoSomething'을 호출 할 경우)? – Juan
@jsoldi : 메모리 할당자가 새 지역을 만드는 방법과 객체에 대한 새로운 저장소를 만드는 방법은 배경에서 매우 다를 수 있지만 개념적으로는 동일합니다. 그리고 예, 재귀 호출은 * 재귀 호출과 같은 * 활성화 *입니다. 모든 * 활성화 *는 새로운 지역 주민을 얻습니다. –
왜 이것을 "메소드 호출"이 아닌 "메소드 활성화"라고 부르는가? 이것은 특별한 용어입니까? – Restuta