If I have this:
public string DoSomething(string arg)
{
string someVar = arg;
DoStuffThatMightTakeAWhile();
return SomeControl.Invoke(new Func<
Local variables stored in the current thread's stack, so each thread will have its own stack and each own someVar variable in it.
Since it would be different values in each thread
new Action(() => someVar));
will capture it's own value of someVar.
Edit
I was simply wrong saying that, as Eric pointed. See his answer for correct explanation.