using System.Threading.Tasks;
public static void Main()
Console.WriteLine("First Example for async return task function");
Console.WriteLine("res="+res);
Console.WriteLine("Second Example for NOT async return task at the same place that the async function");
Console.WriteLine("res="+res2);
Console.WriteLine("Third Example for NOT async return task at the beginning of the function !");
var t3 = FuncTotalTask();
Console.WriteLine("res="+res2);
public static async Task<int> FuncAsync(){
public static Task<int> FuncTask(){
return Task.Delay(3000).ContinueWith(t => {
public static Task<int> FuncTotalTask(){
return Task.Run(()=> Console.WriteLine(1.1))
.ContinueWith(t => Task.Delay(3000)).ContinueWith(t => {