Có nhiều lựa chọn tốt:
- Message Queue
- Các Ống có tên (trực tiếp)
- Các tệp được ánh xạ bộ nhớ
- WCF on Named Ống hoặc MSMQ
Bất kỳ loại nào trong số đó đều đủ nhanh để tôi đề xuất dễ triển khai nhất.
Hàng đợi tin nhắn (MSMQ) theo ý kiến của bạn là đơn giản nhất để sử dụng, cho phép bạn chuyển đối tượng (trái ngược với luồng) và cung cấp cho bạn lưu lượng truy cập tùy chọn (hữu ích trong trường hợp người gửi hoặc người nhận không hoạt động). Tất cả điều này là đúng cho WCF trên MSMQ nhưng WCF có nghĩa là chi phí cao hơn, phức tạp và cấu hình liên quan và không có thêm (trong trường hợp này) giá trị.
Gởi như thế này:
MessageQueue queue = new MessageQueue(".\\private$\\ImagesQueue");
Message msg = new Message
{
Formatter = new BinaryMessageFormatter(),
Body = myImage,
Label = "Image"
};
queue.Send(msg);
Nhận:
MessageQueue queue = new MessageQueue(".\\private$\\ImagesQueue");
msg = queue.Receive(TimeSpan.FromMilliseconds(100));
if (msg != null)
{
msg.Formatter = new BinaryMessageFormatter();
myImage = (MyImage)msg.Body;
}
Queue cần phải được tạo trước khi sử dụng. Bạn có thể làm điều đó khi ứng dụng của bạn bắt đầu
Có này trong lớp học của bạn:
private const string queueName = ".\\private$\\ImagesQueue";
Và trong ứng dụng khởi tạo/khởi động chắc chắn rằng bạn có hàng đợi của bạn:
if (!MessageQueue.Exists(queueName)
{
MessageQueue myQueue = MessageQueue.Create(queueName);
}
Với cơ chế hàng đợi này, Động cơ không phải đợi cho Trình xem hoàn tất. Điều này sẽ cải thiện hiệu suất nhận thức bởi vì bạn có thể tạo ra hình ảnh tiếp theo (thực sự là số lượng của chúng) trong khi hình ảnh trước đó vẫn đang được xem. Không dễ dàng để đạt được với các tập tin ánh xạ bộ nhớ.
MSMQ là thành phần Windows chuẩn nhưng cần phải được bật trong Tính năng của Windows.
Nguồn
2012-02-23 10:07:29
Là người nổi tiếng ở đây ... các bài kiểm tra đơn vị của riêng bạn nên chứng minh xem nó có ổn cả và đáng tin cậy không. –
@AdamHouldsworth Tôi không nhận thấy OP nói rằng họ thậm chí còn sử dụng các bài kiểm tra đơn vị. Có nghĩa là tuyên bố đó là _also_ hơi không liên quan. –
@ Mr.Disappointment Không thực sự. Các bài kiểm tra đơn vị sẽ hướng tới việc chứng minh độ tin cậy và thành công chức năng của phương pháp tiếp cận - các nền tảng của câu hỏi. Ngoài ra, điểm pedantic là nếu họ không sử dụng các bài kiểm tra đơn vị để chứng minh công cụ này, họ nên. –