- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
释放锁时我收到 SynchronizationLockException。
当然,我做的第一件事就是用谷歌搜索这个问题。我发现了两个主要的错误模式:
问题是这些模式都不适合我的情况。
我有一个非常简单的同步场景:
public class MyClass : IDisposable
{
private readonly object _myLock = new object();
internal void Func1()
{
lock (_myLock)
{
//Some code here
}
}
internal void Func2()
{
lock (_myLock)
{
//Some code here
}
}
công khai void Dispose()
{
lock (_myLock)
{
//Some code here
} // Here is where I get an exception
}
}
最终,我在释放锁的 Dispose()
行收到 SynchronizationLockException
。
我的问题不是“我的代码有什么问题”或“我做错了什么”。基本上,我想知道 lock 的 .NET 实现如何(以及在何种情况下)可能会抛出此异常。
Cảm ơn.
câu trả lời hay nhất
我曾经在 List 实例中遇到 SynchronizationLockException,当时它正在调整其基础数组的大小时以适应新元素。 List 实例已从三个不同的线程访问,并且缺少一个锁...
我会说:三重检查您是否以正确的方式进行线程同步。
此外,以正确的方式实现 IDisposable 模式(参见 http://msdn.microsoft.com/en-us/library/fs2xkftw.aspx )。也许终结器让你头疼。
关于c# - 释放锁时出现 SynchronizationLockException(从未同步的代码块调用了对象同步方法。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13992730/
Ứng dụng của tôi bắt đầu bằng Bộ điều khiển thanh tab có 5 tab. Lúc đầu, cái đầu tiên xuất hiện với tên của nó, nhưng bốn cái còn lại không có tên cho đến khi tôi nhấp vào chúng. Tên sau đó được hiển thị dựa trên ngôn ngữ người dùng nói. Cách đặt tùy chọn trước khi thanh tab xuất hiện
Tôi có các đối tượng json mảng lồng nhau (lớp 1, lớp 2 và lớp 3). Vấn đề của tôi là bảng dữ liệu không xuất hiện. Mọi CDN liên quan đều đã được nhập. Bảng này chỉ hiển thị một phần của nó. Tôi đã tham khảo nhiều trang web nhưng không trang nào giải quyết được vấn đề của tôi. Trước đây tôi đã sử dụng các bảng tiêu chuẩn để
Tôi đang cố gắng thiết lập để hiển thị Parse PFLoginViewController. Đây là một trong các lớp Trình điều khiển Chế độ xem của tôi. nhập Nhập UIKit Nhập phân tích cú pháp
Tôi gặp phải vấn đề này, các đối tượng tôi vẽ không xuất hiện trong GUI. Tôi biết nó đang được xử lý vì dữ liệu đang được đẩy vào tệp nhật ký. Tuy nhiên, đồ họa không xuất hiện. Đây là một số mã của tôi: public static void main(Strin
Tôi có một sơ đồ cây chứa các lần xuất hiện của các từ như thế này... Số lần xuất hiện của TreeMap = new TreeMap (); Chuỗi = word Integer = số lần xuất hiện. Làm cách nào để có được số lần xuất hiện tối đa - một số nguyên,
Vì vậy, tôi nhắc người dùng nhập một biến. Nếu biến nhỏ hơn 0 và lớn hơn 10. Nếu người dùng nhập 10, tôi muốn yêu cầu người dùng nhập lại số đó. Khi hỏi thời gian, tôi nhập số 4 thì nó báo bạn nhập sai. Nhưng nó hoạt động rất tốt ở lần thử thứ hai. Ví dụ: Nếu tôi nhập 25, nó sẽ in
Tôi đã làm một ví dụ sử dụng thuộc tính tràn css. Trong ví dụ này, tôi gặp sự cố với thao tác cuộn tràn trang. Thanh cuộn xuất hiện nhưng không hoạt động nghĩa là bất cứ khi nào con trỏ được di chuyển đến thanh cuộn, trong thời gian này thanh cuộn không hoạt động. Mình không biết gì về cái này mong các bạn giúp đỡ
Hiện tại tôi đang làm việc trên một phần tử. Khi bạn nhấp vào một phần tử, thông báo sau sẽ xuất hiện và tôi muốn biết cách làm cho nó biến mất khi bạn nhấp vào phần tử tiếp theo mà không cần nhấp lại vào phần tử đó.... Ví dụ: tôi có pizza trong phần tử của mình và tôi muốn Nhấp vào trên pizza thịt để xem phần trên, sau đó bấm vào bánh pizza phô mai để xem phần trên và thịt
Tôi có một mô-đun bộ định tuyến so sánh các chủ đề với các biểu thức thông thường và các lần xuất hiện liên kết với các mặt nạ khóa nhất quán. (Đây là một cách lọc tuyến đường url đơn giản như symfony http://symfony.com/doc/curr
Câu hỏi này đã có câu trả lời ở đây: đã đóng cửa 9 năm trước. Có thể trùng lặp: mysql_fetch_array() dự kiến tham số 1 là tài nguyên, bo
Tôi có Chế độ xem có thanh công cụ ở dưới cùng và tôi đang sử dụng NavigationLink để điều hướng đến Chế độ xem. Nhưng khi View xuất hiện thì thanh công cụ xuất hiện hơi thấp. Ước chừng nửa giây sau, nó đột nhiên nhảy vào vị trí. Nó sẽ chỉ hoạt động khi ứng dụng khởi động
Tôi đang cố gắng thêm AVAudioPlayer cho nhạc nền trên ứng dụng của mình, tôi đang khởi chạy trình phát trên màn hình chính, cố gắng bắt đầu phát khi ứng dụng đang mở nhưng gặp phải hành vi không mong muốn... nó phát và ngay lập tức tiếp tục tạo trình phát mới và chơi những người chơi này, vì vậy hãy chơi đồng thời
Đây là lấy một số, lấy giai thừa của nó và nhân đôi nó, nhưng vì trường hợp cơ bản là nếu bạn nhập 0 thì kết quả là 2, vì vậy để giải quyết nó, tôi đã sử dụng câu lệnh if nhưng gặp lỗi đầu vào " lỗi phân tích cú pháp nếu" . Tôi thực sự đánh giá cao nếu các bạn có thể giúp đỡ
Ngoại lệ được đưa ra khi tạm dừng android.os.DeadObjectException trong android.os.BinderProxy.transactNative(phương thức gốc) trong android.
Tôi đã viết một số mã cho trò chơi đoán từ. Nó đọc một ký tự từ đầu vào của người dùng và tìm kiếm ký tự đó trong một từ, tùy thuộc vào việc ký tự đó có trong một từ hay không, chương trình sẽ trả về và điều khiển một số biến. Đoạn mã như sau: import java.util.Random import;
Tôi là người mới trong lĩnh vực tự động hóa. Đây là mã đăng nhập TestNG đơn giản của tôi, khi tôi chạy mã này dưới dạng TestNG, nó sẽ ném java.lang.NullPointerException và nhấp đúp vào nó, nó nổi bật, tôi điều hướng đến U
Tôi là lập trình viên C# và tôi đã quen với cú pháp đóng gói của C# và những thứ khác. Nhưng bây giờ, vì lý do nào đó, tôi nên viết một cái gì đó bằng java, tôi đang thực hành java trong một ngày! Tôi sẽ tạo một dự án giả cho chính mình để làm quen với java hơn!
Tôi đang sử dụng Intellij, lớp nguồn của tôi là main.com.coding và tệp tài nguyên của tôi là main.com.testing. Tôi đặt tệp spring.xml vào tệp tài nguyên. Lớp kiểm tra của tôi nằm trong test.
Tôi muốn thư mục kiểm tra của tôi tách biệt với mã ứng dụng của tôi. Cấu trúc dự án của tôi giống như mô-đun myproject/ myproject/ myproject.py này
Câu hỏi này đã có câu trả lời: NullPointerException là gì và làm cách nào để khắc phục nó? (12 câu trả lời) Đã đóng 6 năm trước. Vì vậy tôi cố gắng so sánh 2 giá trị, một
Tôi là một lập trình viên xuất sắc, rất giỏi!