Я пытаюсь прочитать поток данных с устройства и найти в нем действительные данные. Это набор нулей с некоторыми данными между ними. Что-то типа:
0,0,0,1,2,3,2,1,0,0,0,0,1,2,3,2,1,0,0,0 и так далее.
То, что выдается после обработки, представляет собой сумму группы ненулевых данных, например.
9,9
У меня есть два оператора тайм-аута в моем коде. И, к сожалению, оба они имеют одно и то же сообщение:
System.TimeoutException: The operation has timed out.
Поэтому я не могу предоставить пользователю больше контекста, как если бы произошла ошибка, например. Поток данных замолчал или У нас есть поток данных, но мы получаем только нули.
Есть ли способ добавить свое собственное сообщение, а не обычное сообщение TimeoutException?
Вот мой псевдокод:
var _handle =
_source.Select(x => x.Item1)
.Timeout(TimeSpan.FromSeconds(5)) // If the stream goes silent here the timeout is raised.
.EmitSumOfDataNonZeroPoints()
.Timeout(TimeSpan.FromSeconds(15)) // If no valid group of nonzero data is found the timeout is raised.
.Subscribe(
someProcessing => {},
ex => {
_errorInObservableMessage = ex.Message;
},
() => {}
);