Tôi đang làm việc trên một dự án Dot Net, bao gồm một DLL. DLL này sử dụng một .lib (mã C). Thật không may, có nhiều biến tĩnh trong .lib này. Vấn đề tôi có ở đây:DotNet: Biến tĩnh trong DLL
Nếu hai người dùng thực hiện tìm kiếm cùng một lúc, tôi gặp lỗi, vì cả hai đều truy cập vào .lib, một thay đổi trong khi những người khác cố đọc dữ liệu.
Giải pháp hiển nhiên, có thể khóa truy cập, nhưng tôi thực sự không muốn làm điều đó, bởi vì điều đó làm chậm quá trình tìm kiếm giảm đáng kể. Tôi thà cố gắng tạo một DLL từ lib, nhưng tôi không biết liệu điều này có giải quyết được vấn đề hay không, vì tôi không biết liệu các biến tĩnh sẽ được lưu trữ riêng hay nếu cả hai quá trình tìm kiếm sẽ truy cập giống nhau biến.
Có ai có kinh nghiệm với điều này không? Bởi vì nó sẽ mất khá nhiều thời gian để làm điều này, và tôi muốn biết nếu nó hoạt động trước khi tôi bắt đầu làm điều này.
Tôi hy vọng mọi thứ đều dễ hiểu, vì tiếng Anh không phải là ngôn ngữ đầu tiên của tôi và kỹ năng lập trình của tôi khá cơ bản.
Bạn * nên * tránh sử dụng quá mức các trường * tĩnh *. Cố gắng thay đổi thiết kế * Kiểu *. – adatapost
Vấn đề là, mã C có đầy đủ các số liệu thống kê, sẽ mất quá nhiều thời gian để thay đổi mọi thứ. Chỉ thay thế nhanh chóng tôi thấy atm, đang cố gắng này DLL "lừa". – Stefan
@Stefan: xác định loại mới trong một hội đồng mới có quyền truy cập vào mã C đó (và chỉ có nó), nói cách khác là trình bao bọc cho nó. Adn từ whithin loại đó, quản lý truy cập độc quyền vào tài nguyên C theo cách bạn muốn. Vì vậy, nếu bạn muốn gọi một số chức năng C, bạn phải sử dụng loại đó, và nếu bạn sẽ gọi một cái gì đó trong middel thực hiện, cùng loại sẽ chặn bạn, nâng cao một ngoại lệ, hiển thị tin nhắn .. bất cứ điều gì. – Tigran