Tôi đang sử dụng phần mở rộng phản ứng để đối chiếu dữ liệu vào bộ đệm của 100ms:Tiện ích mở rộng phản ứng có hỗ trợ bộ đệm lăn không?
this.subscription = this.dataService
.Where(x => !string.Equals("FOO", x.Key.Source))
.Buffer(TimeSpan.FromMilliseconds(100))
.ObserveOn(this.dispatcherService)
.Where(x => x.Count != 0)
.Subscribe(this.OnBufferReceived);
này hoạt động tốt. Tuy nhiên, tôi muốn có hành vi hơi khác so với hành vi của hoạt động Buffer
. Về cơ bản, tôi muốn đặt lại bộ hẹn giờ nếu nhận được một mục dữ liệu khác. Chỉ khi không có dữ liệu nào được nhận cho toàn bộ 100ms thì tôi có muốn xử lý nó không. Điều này mở ra khả năng không bao giờ xử lý dữ liệu, vì vậy tôi cũng có thể chỉ định số lượng tối đa. Tôi sẽ tưởng tượng điều gì đó dọc theo các dòng:
.SlidingBuffer(TimeSpan.FromMilliseconds(100), 10000)
Tôi đã xem xét và không thể tìm thấy bất kỳ thứ gì như thế này trong Rx? Bất cứ ai có thể xác nhận/từ chối điều này?
Tôi chắc chắn rằng tôi đã thấy hành vi này trong một trong các video hướng dẫn về Rx nhưng tôi sợ rằng tôi không thể nhớ chính xác địa điểm hoặc nơi nào. :( – Chris
Ah, ga (http://msdn.microsoft.com/en-us/library/hh229298%28v=vs.103%29.aspx) là những gì tôi đã nghĩ đến nhưng tôi không nghĩ rằng những gì bạn không muốn chắc chắn rằng có thể có một số cách để kết hợp nó để làm những gì muốn ... – Chris