Tôi đang sử dụng ThreadPool.QueueUserWorkItem để phát một số tệp âm thanh và không treo lên GUI trong khi làm như vậy..NET ThreadPool QueueUserWorkItem Đồng bộ hóa
Nó hoạt động nhưng có tác dụng phụ không mong muốn.
Trong khi QueueUserWorkItem CallBack Proc đang được thực thi, không có gì ngăn nó bắt đầu chuỗi mới. Điều này làm cho các mẫu trong các chủ đề chồng lên nhau.
Tôi làm cách nào để nó đợi chuỗi đang chạy để kết thúc chạy và chỉ sau đó chạy yêu cầu tiếp theo?
EDIT: private object sync = new Object(); lock (sync) { .......do sound here }
công trình này. chơi theo âm thanh theo thứ tự.
nhưng một số mẫu đang được phát nhiều lần khi tôi tiếp tục gửi yêu cầu âm thanh trước khi yêu cầu phát được kết thúc. sẽ điều tra.
CHỈNH SỬA: là kết quả bên trên của khóa Convoy @Aaronaught được đề cập?
có thể trùng lặp ?: http://stackoverflow.com/questions/1902384/make-a-backgroundworker-do-several-operations-sequentially-without-freezing-the-f/1907501#1907501 – Oliver