Simple C# Coroutine refer to unity coroutine principle.
Although unity coroutine implemented in c++, it also based on "DelayedCallback" and "C# yield return keyword":
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/yield
You can learn how unity coroutine works by this SimpleCoroutine project.
Press SpaceBar key to run.