내가 수신 버퍼 기능을 사용할 방출하기 : 버퍼가 마지막 발광 이후 갈 5 또는 30 초 크기에 도달하면 발광 (가입자에 게시)을 의미수신 .NET 힘 버퍼는
var source = new Subject<Price>();
var buffer = source
.Buffer(TimeSpan.FromSeconds(30), 5)
.Where(p => p.Any());
발생 .
하지만 우선 순위가 높은 순서 항목을 수신하는 경우와 같이 필요할 때마다 내 보내야합니다. 그런 다음 그것을 관측 가능 (source.OnNext()
)에 추가하고 어떻게 든 그것을 내보내도록합니다 (즉, 버퍼의 모든 요소를 반환하고 지우는 것입니다).
var flusher = new Subject<Price>();
var closing = flusher.Select(x => new List<Price> {x});
var query = buffer.Merge(closing).Subscribe(something);
및 flusher.OnNext (highPriorityItem)를 호출하고 나는 그것이 방출해야합니다 :
은 내가 다음 코드를 추가 할 수 있다는 것을 알고.
하지만이 경우 두 개의 서로 다른 방출로 두 개의 독립적 인 시퀀스가 있습니다. 버퍼가 꽉 찼거나 특정 항목이 순서대로 나타나면 하나를 내 보내야합니다.
Force flush count-type Observable.Buffer c# 및 Force flush to Observable.Buffer c# 나
'[...] me' 어떤 특별한 이유에 적합하지 않는 것 : 여기
는 방법은? 후자는 당신이 요구하는 것을 정확하게 수행하는 것 같습니다 ... – decPL
버퍼 대신 단위 관련 정의와 타이머가 있습니다. 나는 그들이/내 문제를 해결하는 방법을 모르거나 이해하지 못한다. – brolly87
그것들을 구현하려 했습니까? 그냥'Unit'을'Price' 클래스로 대체하십시오. 문제가 있다면 문제를 기술하고 누군가가 도움을 줄 수 있기를 바랍니다. – decPL