Переменная происходит в соответствии с областью объявления из npage
. Параметр npage
объявляется на уровне метода и не изменяется в этом методе, поэтому использование npage
является полностью поточно-безопасным.
Проблема, которую вы избегаете, возникла бы, если бы вы изменили переменную в пределах объявленной области, обычно это цикл - т.е.
for(int npage = 0; npage < 100 ; npage++)
Foo( (s,e) => DoSomething(npage) ); // not safe; npage shared between all
однако, разбивая его на метод, вы избегаете этого, т.е.
for(int i = 0; i < 100; i++)
Hit(i);
...
void Hit(int npage) {
Foo( (s,e) => DoSomething(npage) ); // safe; npage is per-call
}