Here is a meaningless extension method as an example:
public static class MyExtensions { public static int MyExtensionMethod(this MyType e) { in
Yes, each thread gets its own separate local variable. This function will always return 2 even if called by multiple threads simultaneously.