Added basic async/await timings to prove how it works.

This commit is contained in:
2026-08-15 15:48:15 +02:00
parent 1b5bf4f8d4
commit 980e8c4e04
2 changed files with 43 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
using System.Diagnostics;
long startTime = Stopwatch.GetTimestamp();
Console.WriteLine(
$"[Program] start - thread {Environment.CurrentManagedThreadId}, t = {Stopwatch.GetElapsedTime(startTime).TotalMilliseconds} ms"
);
var task = FetchUserAsync(42);
Console.WriteLine(
$"[Program] after fetch - thread {Environment.CurrentManagedThreadId}, t = {Stopwatch.GetElapsedTime(startTime).TotalMilliseconds} ms"
);
var user = await task;
Console.WriteLine(
$"[Program] after await - thread {Environment.CurrentManagedThreadId}, t = {Stopwatch.GetElapsedTime(startTime).TotalMilliseconds} ms"
);
return;
async Task<string> FetchUserAsync(int id)
{
Console.WriteLine(
$"[FetchUserAsync] entered - thread {Environment.CurrentManagedThreadId}, t = {Stopwatch.GetElapsedTime(startTime).TotalMilliseconds} ms"
);
await Task.Delay(500);
Console.WriteLine(
$"[FetchUserAsync] resumed, thread {Environment.CurrentManagedThreadId}, t = {Stopwatch.GetElapsedTime(startTime).TotalMilliseconds} ms"
);
return $"User ID: {id}";
}
@@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<RootNamespace>async_lab</RootNamespace>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>