【发布时间】:2011-12-12 15:31:05
【问题描述】:
我有一个非常旧但非常大的库,我正在考虑将其转换为 C# 类库。现有库使用大量存储在 TLS 中的全局变量。 C# 没有全局变量的真正概念,但一种解决方法是使用名为 GlobalVar 之类的静态类并将它们全部放在此类中,以便可以通过 GlobalVar.xxxxxx 访问它们
但是,我的想法是,这将破坏所有正在转换的现有代码,因为 GlobalVar 类将是一个普通的全局类,而不是每个线程存储。有没有办法让这些全局变量成为每个线程?即 C# 中 __declspec (thread) static 的等价物是什么?
此时我应该补充一点,我讨厌全局变量。我认为它们通常是糟糕设计的结果。但是,由于时间紧迫,第一阶段是将库转换为 C# 以最小的麻烦,然后第二阶段将重新设计它们。
【问题讨论】:
标签: c# multithreading global-variables