Store some data that is indpendently accessible within the thread and not shared across the different threads.
[ThreadStatic] public static string MethodName;
If the data is required to be accessible across all threads, we know that the solution will work:
public static string GlobalData;
This will not work if GlobalData needs to be different in different threads.
We know that Thread has CurrentPrincipal and CurrentIdentity properties which we use to determine the user context of the thread.
Another solution is to use Thread.SetData method.