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を組み合わせるのは初めてなので、概念上のエラーがあります。お知らせください。