C# 7 là ra ngoài và tôi thấy họ đã mở ra các asyncchờ từ khóa để cho phép bất cứ điều gì bạn muốn. Tuy nhiên diện tích bề mặt của API có vẻ như very large và tôi không chắc chắn về những hạn chế đó. Cụ Tôi quan tâm nếu điều này là có thểVới sự hỗ trợ TaskLike async mới C# 7.0 là nó có thể viết một IObservable <T> phát
int RandomNumber(){..}
public async IObservable<int> Generate(){
while(true){
await Observable.Timer(TimeSpan.FromSeconds(1)).Select(_=>RandomNumber());
await Observable.Timer(TimeSpan.FromSeconds(2)).Select(_=>10);
}
}
mà tôi nghĩ là tương đương với
public IObservable<int> Generate(){
return Observable.Timer(TimeSpan.FromSeconds(1)).Select(_=>RandomNumber())
.Concat(Observable.Timer(TimeSpan.FromSeconds(2)).Select(_=>10))
.Replay();
}
Có một liên kết trên Reddit from a while trước thảo luận về lý do tại sao async chờ đợi có thể mạnh mẽ như f biểu thứC# tính toán nếu chỉ họ được cho phép.