using System.Collections;
using System.Diagnostics;
using System.Threading.Tasks;
namespace ConsoleApp2
{
internal class Program
{
static async Task Main(string[] args)
{
Console.WriteLine($"{DateTime.Now},start of main!");
await foreach(var item in GetIEnumerableStringAsync(100))
{
Console.WriteLine($"{DateTime.Now},{item}");
}
Console.WriteLine($"{DateTime.Now},End of main!");
Console.ReadLine();
}
static string GetMem()
{
return $"Memory :{Process.GetCurrentProcess().PrivateMemorySize64 / 1024 / 1024:N2} M";
}
static IEnumerable<string> GetIEnumerableStrings(int cnt)
{
if(cnt<0)
{
yield break;
}
for(int i=1;i<cnt+1;i++)
{
yield return $"{i}_{Guid.NewGuid():N}";
Thread.Sleep(1000);
}
}
static async IAsyncEnumerable<string> GetIEnumerableStringAsync(int cnt)
{
if(cnt<0)
{
yield break;
}
for(int i=1;i<cnt+1;i++)
{
yield return $"{i}_{Guid.NewGuid():N}_{GetMem()}";
await Task.Delay(1000);
}
}
}
}
![image]()
![image]()