Một mẫu phổ biến trong C++ là tạo một lớp bao bọc một khóa - khóa hoặc là được lấy ngầm khi đối tượng được tạo ra, hoặc được chụp một cách rõ ràng sau đó. Khi đối tượng đi ra khỏi phạm vi, dtor tự động phát hành khóa. Có thể thực hiện điều này trong C# không? Theo như tôi hiểu không có đảm bảo về khi dtor trong C# sẽ chạy sau khi đối tượng đi ra khỏi phạm vi.Có thể thực hiện khóa bị khóa trong C# không?
Làm rõ: Bất kỳ khóa nào nói chung, spinlock, ReaderWriterLock, bất cứ điều gì. Gọi Vứt bỏ bản thân mình đánh bại mục đích của mẫu - để có khóa được giải phóng ngay sau khi chúng tôi thoát khỏi phạm vi - không có vấn đề gì nếu chúng ta gọi trở lại ở giữa, ném ngoại lệ hoặc không có điều gì. Ngoài ra, theo như tôi hiểu bằng cách sử dụng sẽ vẫn chỉ xếp hàng đối tượng cho GC, không phá hủy nó ngay lập tức ...