Der Compiler wird no Ihren Code auf diese Weise zu optimieren. Der Code wird in einem neuen .NET-Thread ausgeführt. Es muss ein Fehler in der Art und Weise vorliegen, wie Sie Ihre Beobachtungen gemacht haben.
Beachten Sie, dass .NET-Threads nicht unbedingt mit OS-Threads gleichzusetzen sind:
Eine ThreadId des Betriebssystems hat keine feste Beziehung zu einem verwalteten Thread, da ein nicht verwalteter Host die Beziehung zwischen verwalteten und nicht verwalteten Threads kontrollieren kann. Insbesondere kann ein ausgeklügelter Host die CLR-Hosting-API verwenden, um viele verwaltete Threads für denselben Betriebssystem-Thread einzuplanen oder um einen verwalteten Thread zwischen verschiedenen Betriebssystem-Threads zu verschieben.
Theoretisch könnten Sie zwei verwaltete Threads mit der gleichen Windows-Thread-ID sehen, aber die Thread.Name
Eigenschaft immer noch unterschiedlich sein (vorausgesetzt, Sie haben die Namen zunächst auf zwei unterschiedliche Werte gesetzt).
Wenn Sie den von Ihnen verwendeten Code posten könnten, bei dem Sie beobachtet haben, dass etwas im falschen Thread ausgeführt wird, könnte es möglich sein, den Fehler zu entdecken, den Sie gemacht haben.