Lets analyze this simple example:
new Task(() =>
{
int i = 0;
do
{
Console.WriteLine(i);
i++
} while (true);
});
Technically you would expect 1, 2, 3, 4... starting to appear in console. But in practice nothing happens, because Task waits for loop to finish, which can never happen.
And here comes my question – how to run this loop asynchronously? Using Task allows not locking UI, but still results won’t appear until loop is over.
>Solution :
You can write your code like this (inside the main methode) :
await Task.Run(() =>
int i = 0;
do
{
Console.WriteLine(i);
i++
} while (true););