कनवर्ट करें मैं कार्य पूर्ण करने के रूप में कार्य की गणना को बफर करने के लिए प्रतिक्रियाशील एक्सटेंशन (आरएक्स) का उपयोग करने की कोशिश कर रहा हूं। क्या किसी को पता है कि ऐसा करने का एक साफ अंतर्निहित तरीका है? ToObservable
विस्तार विधि केवल IObservable<Task<T>>
बनायेगी, जो कि मैं नहीं चाहता हूं, मुझे IObservable<T>
चाहिए, ताकि मैं Buffer
पर उपयोग कर सकूं।Inumerable <Task<T>> IObservable <T>
काल्पनिक उदाहरण:
//Method designed to be awaitable
public static Task<int> makeInt()
{
return Task.Run(() => 5);
}
//In practice, however, I don't want to await each individual task
//I want to await chunks of them at a time, which *should* be easy with Observable.Buffer
public static void Main()
{
//Make a bunch of tasks
IEnumerable<Task<int>> futureInts = Enumerable.Range(1, 100).Select(t => makeInt());
//Is there a built in way to turn this into an Observable that I can then buffer?
IObservable<int> buffered = futureInts.TasksToObservable().Buffer(15); //????
buffered.Subscribe(ints => {
Console.WriteLine(ints.Count()); //Should be 15
});
}
http://stackoverflow.com/questions/13500456/how-to-convert-an-ienumerabletaskt-to-iobservablet –