Thread Local Storage For C# Class Library

У меня есть очень старая, но очень большая библиотека, которую я собираюсь преобразовать в библиотеку классов C#. Существующая библиотека использует много глобальных переменных, хранящихся в TLS. В C# нет реальной концепции глобальных переменных, но одним из обходных путей является использование статического класса под названием что-то вроде GlobalVar и помещение их всех в этот класс, чтобы к ним можно было получить доступ через GlobalVar.xxxxxx

Однако я думаю, что это сломает весь существующий код, который преобразуется, поскольку класс GlobalVar будет обычным глобальным классом, а не хранилищем для каждого потока. Есть ли способ заставить эти глобальные переменные быть потоковыми? Т.е. каков эквивалент __declspec (thread) static в C#?

Я должен добавить, что я ненавижу глобальные переменные. Я считаю, что они часто являются результатом плохого дизайна. Однако, из-за жестких ограничений по времени, первая фаза - это преобразование библиотеки в C# с минимальной суетой, а вторая фаза - перепроектирование их должным образом.

11
задан Jonnster 21 October 2011 в 14:26
поделиться