Hiện tại, tôi đang xử lý sự cố khi tôi phải gửi rất nhiều chức năng đến một chuỗi khác để ngăn chặn chức năng hiện tại chặn. bây giờ tôi tự hỏi cách nhanh nhất là thực hiện nhiệm vụ này là gì.Cách nhanh nhất để thực thi phương thức không đồng bộ?
hiện Tôi đang mắc kẹt với
ThreadPool.UnsafeQueueUserWorkItem
như hơi nhanh hơn của nó so với QueueUserWorkItem thường xuyên. tuy nhiên, tôi sợ rằng threadpool có thể chặn điều này ở đây. có cách nào nhanh hơn để gửi một cuộc gọi phương thức đến một chủ đề khác không? tôi tự hỏi thực hành tốt nhất là gì cho một nhiệm vụ như vậy? mã không an toàn sẽ là không có vấn đề vì nó trong một kịch bản mà đã có rất nhiều interop được sử dụng. cảm ơn j.
Khi bạn nói 'nhanh hơn' làm bạn có nghĩa là bạn muốn giảm bớt chặn trên thread 'chính'? Cụ thể, cuộc gọi xếp hàng để xử lý nền trả về càng nhanh càng tốt? –
WRT mối quan tâm của bạn, threadpool không chặn cho cuộc gọi đó (hoặc bình thường 'an toàn'), nhưng nó trả về một bool cho dù nó đã xếp hàng thành công, với lý thuyết là nếu nó trả về false, bạn có thể muốn thực hiện nó trên chuỗi hiện tại hoặc thử lại sau hoặc bất kỳ điều gì. –
Bạn có gửi đi cùng một phương pháp mỗi lần không? Họ có cần phải hoạt động không đồng bộ với nhau không? Cách tiếp cận của nhà sản xuất/người tiêu dùng có được chấp nhận không? (vì vậy người gọi chỉ cần thêm thứ gì đó vào hàng đợi). Phiên bản .NET nào được bật? –