private static async Task <string> FirstStageAsync(string input) { try { if (Environment.TickCount % 10 == 0) { throw new ArgumentOutOfRangeException("1st"); } string data = $"{input} -> first stage"; var message = Completeble.Create(data); _q1.Enqueue(message); // enqueue and complete Console.Write(" 1st "); string result = await message.Task; // this is the magic Console.WriteLine($"\r\n{result}"); return(result); } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(); Console.WriteLine(ex.Format(ErrorFormattingOption.FormatDuplication | ErrorFormattingOption.IncludeLineNumber)); Console.ResetColor(); throw; } }
private static async Task <string> FirstStageAsync(string input) { string data = $"{input} -> first stage"; var message = Completeble.Create(data); _firstQueue.Enqueue(message); // enqueue and complete Console.Write(" 1st "); string result = await message.Task; // this is the magic Console.WriteLine($"\r\n{result}"); return(result); }