using System.Threading.Tasks;
using System.Diagnostics;
public static void Main()
static async Task MainAsync()
TimeSpan _timeout = TimeSpan.FromSeconds(1);
var timeoutCancellationTokenSource = new System.Threading.CancellationTokenSource(_timeout);
var sw = new Stopwatch();
Task _t1 = asyncFunction("LINE 01", " ", " ", " ", 2000, timeoutCancellationTokenSource);
catch (OperationCanceledException)
Console.WriteLine("Operation was cancelled");
Console.WriteLine("Time taken: {0}", sw.Elapsed);
private static async Task asyncFunction(string line_1, string line_2, string line_3, string line_4, int _time, System.Threading.CancellationTokenSource _cts)
_cts.Token.ThrowIfCancellationRequested();
await Task.Run(async () => {
Console.WriteLine("{0},{1},{2},{3}", line_1, line_2, line_3, line_4);
Console.WriteLine("HELLO WORLD");
await Task.Delay(_time, _cts.Token);