У меня есть очень старая, но очень большая библиотека, которую я рассматриваю для преобразования в библиотеку классов С#. В существующей библиотеке используется множество глобальных переменных, хранящихся в TLS. В С# нет реальной концепции глобальных переменных, но одним из способов является использование статического класса, называемого чем-то вроде GlobalVar, и размещение их в этом классе, чтобы к ним можно было обращаться через GlobalVar.xxxxxx
Однако, я думаю, что это сломает весь существующий код, который будет преобразован, поскольку класс GlobalVar будет нормальным глобальным классом, а не потоковым хранилищем. Есть ли способ заставить эти глобалы быть в потоке? то есть эквивалент __declspec (thread) static в С#?
В этот момент я должен добавить, что ненавижу глобальные переменные. Я думаю, что они часто являются результатом плохого дизайна. Однако из-за ограниченных временных ограничений первый этап состоит в том, чтобы преобразовать библиотеку в С# с минимальной суматохой, а затем выполнить фазу 2, чтобы перепроектировать их правильно.