async Task<packet> getMyPacket()
{
IObservable<packet> packets = ...;
await packets
.Where(x => x.frameType == CMD_ID_0 )
.FirstAsync()
.GetAwaiter()
;
}
上面的代码片段工作正常。
但是,如何使用 GetAwaiter 完成错误处理?
例如,如果它应该返回标准错误数据包,则超时。
await packets
.Where(x => x.frameType == CMD_ID_0 )
.FirstAsync()
.TimeOut( TimeSpan.FromSeconds(5))
.GetAwaiter ( , ,OnError: return newErrorPacket(TIMEOUT) )
;
我曾尝试查看可用的文档,但未能走得更远。我不熟悉将 async/Tasks 与 IObservable 相结合,所以我有一个概念错误,请告诉我。