First find the TaskScheduler method table
0:025> .loadby sos clr 0:025> .symfix c:\debug\symbols 0:025> !name2ee mscorlib.dll System.Threading.Tasks.TaskScheduler Module: 000007feeea11000 Assembly: mscorlib.dll Token: 000000000200052e MethodTable: 000007feef0a8ab0 EEClass: 000007feeebde1a8 Name: System.Threading.Tasks.TaskScheduler
Then unload the heap to find some objects of this type. Please note that I am using String here since I do not have an application with TaskScheduler available.
0:025> !dumpheap -mt <MethodTable>
Now that you have some objects, just unload one of them.
0:025> !do 00000000126ed548 Name: System.String MethodTable: 000007feef0bda88 EEClass: 000007feeea16a08 Size: 34(0x22) bytes File: C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll String: 100% Fields: MT Field Offset Type VT Attr Value Name 000007feef0c03d0 4000243 8 System.Int32 1 instance 4 m_stringLength 000007feef0bec38 4000244 c System.Char 1 instance 31 m_firstChar 000007feef0bda88 4000248 80 System.String 0 shared static Empty
Note the shared (static) Empty property of String. You should get something similar in TaskScheduler for the static property Default .
As you can see, you do not see anything. To do this, you need the SOSEX extension and run !mdt System.Threading.Tasks.TaskScheduler .
0:025> !mdt System.String System.String [...] [s]Empty: string AppDomain 'Test.exe' (0000000001d73470): 0000000011fc1420[System.String] STRVAL=
source share