Are .NET threadstreams threads in user mode, or are operating system threads in kernel mode?
Also, while maintaining SQL Server, is there a one-to-one correspondence between the .NET thread and the operating system thread?
I am also intrigued because the Thread class, which has a symmetrical pair of methods called BeginThreadAffinity and EndThreadAffinity , whose documentation subtly suggests that .NET threads are light abstractions over real operating system threads.
Also, I recently read a thread article that Microsoft scratched an attempt to keep this separation in the common language runtime, as SQL Server does. Remember, some project to use the Fiber API for this purpose, but I can’t say that I understood all the details of what I read.
I would like to receive more detailed literature on this topic, such as the internal structure of the .NET vis-a-vis .NET thread associated with the Windows-created thread. Although there is a lot of information in the structure of the stream created by Windows, Jeffrey Richter’s book “Extended Book on Windows”, which is one of the sources, for example, I cannot find any literature on the internal structure of the .NET stream.
It can be argued that this information is available in the .NET source code, which is now publicly available or used by a disassembler such as Reflector or IL Spy, but I don’t see anything to represent the flow control block (TCB) and program counter (PC) and stack pointer (SP) either a thread waiting queue, or a list of queues in which the thread is currently a member of the Thread class.
Where can I read about this? Does it describe the documentation? I read all of these pages from MSDN , but they don't seem to mention this.
source share