Tôi có một thư viện rất cũ nhưng rất lớn mà tôi đang xem xét chuyển đổi sang thư viện lớp C#. Thư viện hiện có sử dụng rất nhiều biến toàn cầu được lưu trữ trong TLS. C# không có khái niệm thực sự về các biến toàn cục, nhưng một cách giải quyết khác là sử dụng một lớp tĩnh gọi là GlobalVar và đặt chúng trong lớp này để chúng có thể được truy cập thông qua GlobalVar.xxxxxxLưu trữ cục bộ chủ đề Đối với thư viện lớp C#
Tuy nhiên, suy nghĩ của tôi là tất cả các mã hiện có đang được chuyển đổi thành lớp GlobalVar sẽ là một lớp toàn cầu bình thường và không phải trên mỗi lưu trữ luồng. Có cách nào để nhận được các hình cầu này trên mỗi luồng không? tức là tương đương với __declspec (luồng) tĩnh trong C# là gì?
Tôi nên thêm vào thời điểm này là tôi ghét các biến toàn cầu. Tôi nghĩ rằng chúng thường là kết quả của thiết kế kém. Tuy nhiên, do hạn chế thời gian chặt chẽ, giai đoạn một là chuyển đổi thư viện thành C# với tối thiểu fuss và sau đó giai đoạn 2 sẽ được thiết kế lại chúng đúng cách.
Hehe, bạn dường như nhấn mạnh vào việc dạy chúng tôi tiếng Ý :-) –
@xanatos 'ThreadStaticAttribute chỉ có thể được sử dụng trên các trường tĩnh' không phải lúc nào cũng đúng. Mọi người có thể muốn khai báo một biến cho mỗi thread-per-instance –
Ý của tôi không phải là tuyệt vời nhưng đùa ngoài, rất cám ơn sự giúp đỡ. Mặc dù tôi hơi lo ngại về đoạn cuối cùng cần làm với việc sử dụng ThreadPool. Tôi không nghĩ rằng đây sẽ là một vấn đề lúc đầu nhưng nó là cái gì đó có thể cần xem xét trong tương lai. – Jonnster