Tôi đã sử dụng Rx một thời gian cho các sự kiện trong các dự án của tôi và dành riêng cho lập trình Socket và phần tốt là làm tốt. Quản lý mã của tôi, lợi thế hiệu suất và tốt hơn nhiều để thực thi và diễn giải. Gần đây tôi phải sửa đổi quy trình dự án của tôi, nơi tôi cần phải đổ tất cả dữ liệu đến (từ hoạt động ổ cắm) vào hàng đợi (sử dụng triển khai MSMQ theo quyết định xếp hàng).Sử dụng phần mở rộng Phản hồi (Rx) cho tin nhắn MSMQ nhận được bằng cách sử dụng mẫu không đồng bộ (queue.BeginReceive, queue.EndReceive)
Vì MSMQ cung cấp cuộc gọi không đồng bộ cho các thông báo dequeing từ hàng đợi (nhưng trong một mẫu hình kinh khủng). Tôi đã đấu tranh để sử dụng Rx cho mục đích này ngay bây giờ, nhưng cho phép làm như vậy.
Câu hỏi: Một số người có thể cung cấp cho tôi một ví dụ mã rõ ràng để triển khai Rx cho nhận thư từ hàng đợi bằng mẫu Async.
tôi cần thực hiện hành async cho MSMQ tương tự như một cái gì đó như thế này
var data = Observable.FromAsyncPattern<byte[]>(
this.receiverSocket.BeginReceive,
this.receiverSocket.EndReceive(some parameters);
Cảm ơn trước. * cổ vũ * để Rx và .NET
Bạn có thể chỉ cho tôi đến lớp mà có 'EndReceive' với các thông số? Tôi không thể tìm thấy nó ... – Enigmativity
tôi không chắc chắn những gì bạn đang yêu cầu nhưng tôi đang trả lời những gì tôi hiểu. Tôi cần một thực hiện Rx (FromAsyncPattern) cho BeginReceive & EndReceive mà trả về cho tôi "System.Messaging.Message" đối tượng. Các phương thức async là cho các phương thức đối tượng System.Messaging.MessageQueue. Hy vọng bạn hiện đang có ý tưởng tốt hơn. Tôi hạnh phúc và chắc chắn rằng bạn sẽ trả lời siêu nhanh khi nói đến câu hỏi Rx: D – Jsinh
Không có phương thức 'EndReceive' nào trong lớp' MessageQueue' có bất kỳ tham số nào ngoài 'IAsyncResult'. Loại 'receiverSocket' của bạn là gì? – Enigmativity