using System;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
// Start the two functions as tasks
Task task1 = Task.Run(() => Function1());
Task task2 = Task.Run(() => Function2());
// If you want/need you can wait for both tasks to complete
Task.WaitAll(task1, task2);
Console.WriteLine("End Main method");
}
static void Function1() {
for (int i = 0; i < 5; i++) {
Console.WriteLine($"Function1 - Iteration {i}");
Task.Delay(1000).Wait();
}
}
static void Function2() {
for (int i = 0; i < 5; i++) {
Console.WriteLine($"Function2 - Iteration {i}");
Task.Delay(1000).Wait();
}
}
}
/*
run:
Function2 - Iteration 0
Function1 - Iteration 0
Function1 - Iteration 1
Function2 - Iteration 1
Function1 - Iteration 2
Function2 - Iteration 2
Function1 - Iteration 3
Function2 - Iteration 3
Function1 - Iteration 4
Function2 - Iteration 4
End Main method
*/