Tôi có khóa trong mã của mình.
Tôi có hai chuỗi chạy cùng một lúc. Làm cách nào để biết chuỗi có đang khóa đối tượng đó không?Làm thế nào để tìm ra nếu một đối tượng bị khóa? C#
private readonly object _lockObject = new Object();
// Both methods running
public void Method1()
{
if(certainCriteria)
{
lock(_lockObject)
{
//doWork;
}
}
}
// Both methods running
public void Method2()
{
if(isLocked?(_lockObject))
{
//doWork;
}
}
Có ai có được khóa không? phương pháp?
Cảm ơn trước!
@Jon: Yaow quá nhanh, yaaw (đọc tốt hơn nếu bạn có thể quản lý giọng đen của quốc gia). Đó là những gì tôi sẽ đề nghị với một cảnh báo lớn "Nó hoạt động trên cơ sở chúng ta" biết "làm thế nào khóa hoạt động". – AnthonyWJones
Tôi không đặc biệt lo lắng bởi thực tế là nó phụ thuộc vào việc biết làm thế nào khóa hoạt động - nó không giống như đó là sẽ thay đổi. Nó chỉ là nó cảm thấy đồng bằng sai. Tôi dám nói rằng có một số * tình huống hữu ích, nhưng có lẽ ít hơn những nơi thực sự được sử dụng! –
Xin chào Jon! Tôi đang triển khai một BufferManager. Về cơ bản nó có một Stack of Buffers. Khi một chủ đề pop() s ngăn xếp và nó là trống rỗng - Tôi muốn tất cả các chủ đề để chờ đợi trên pop tiếp theo của họ() trong khi một chủ đề đầy lên ngăn xếp. Sau khi điền - tất cả các chủ đề khác để tiếp tục bật. Tôi không chắc chắn về cơ chế khóa C# mặc dù! – divinci