C# 8.0 ने async streams पेश किए, जो डेटा के स्ट्रीमिंग स्रोत को मॉडल करते हैं। डेटा स्ट्रीम्स अक्सर तत्वों को असिंक्रोनस रूप से पुनर्प्राप्त या उत्पन्न करते हैं।
मुख्य विशेषताएं
asyncमॉडिफायर के साथ घोषित मेथड मेंyield returnका उपयोग करके तत्व उत्पन्न किए जा सकते हैं।- रिटर्न टाइप
IAsyncEnumerable<T>होता है। await foreachलूप का उपयोग करके async stream का उपभोग किया जाता है।
सिंटैक्स तुलना
पारंपरिक IEnumerable (सिंक्रोनस)
static IEnumerable<string> Message() {
yield return "Hello!";
yield return "Hello!";
}
Async Stream (IAsyncEnumerable)
static async IAsyncEnumerable<string> MessageAsync() {
await Task.Delay(2000);
yield return "Hello!";
await Task.Delay(2000);
yield return "Hello!";
}
उपयोग उदाहरण
class Program {
public static async Task Main() {
await foreach (var item in MessageAsync()) {
System.Console.WriteLine(item);
}
Console.ReadLine();
}
static async IAsyncEnumerable<string> MessageAsync() {
await Task.Delay(2000);
yield return "Hello!";
await Task.Delay(2000);
yield return "Hello!";
}
}
आउटपुट
Hello!
Hello!
उपयोग के मामले
- डेटाबेस से बड़ी मात्रा में डेटा स्ट्रीमिंग
- बड़ी फाइलों को चंक में पढ़ना
- रियल-टाइम डेटा फीड्स
- पेजिनेटेड API रिस्पॉन्स प्रोसेसिंग