Gehen Sie nicht davon aus, dass es sich bei einem verwalteten Thread um einen Win32-Thread handelt, es könnte auch eine Fiber ...

Gehen Sie nicht davon aus, dass es sich bei einem verwalteten Thread um einen Win32-Thread handelt, es könnte auch eine Fiber sein. Von der Laufzeit werden verwaltete Threads über wirklichen Threads von SQL Server als Fibers ausgeführt. Diese Threads werden für mehrere Anwendungsdomänen und selbst Datenbanken im SQL Server-Prozess freigegeben. Die lokale Speicherung von verwalteten Threads kann verwendet werden, jedoch können Sie keine lokale Speicherung für nicht verwaltete Threads verwenden. Sie können auch nicht davon ausgehen, dass der Code im aktuellen Betriebssystem erneut ausgeführt wird. Ändern Sie keine Einstellungen wie das Gebietsschema des Threads. Rufen Sie nicht CreateCriticalSection oder CreateMutex über P/Invoke auf, da es diese erfordern, dass für den Thread, für den eine Sperre eingerichtet wird, die Sperre auch wieder aufgehoben wird. Da dies beim Verwenden von Fibers nicht der Fall ist, können wichtige Win32-Abschnitte und Mutexe in SQL nicht verwendet werden.
Sie können die meisten Zustände eines verwalteten System.Thread-Objekts, einschließlich des verwalteten Speichers für lokale Threads und der aktuellen UI-Kultur des Threads, sicher verwenden. Aufgrund des Programmiermodells können Sie die aktuelle Kultur eines Threads beim Ausführen in SQL Server jedoch nicht ändern (dies wird durch eine neue Berechtigung erzwungen).