using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("进入同步操作!");
Task<string> ts = Getstr();
Random r = new Random();
for (int i = 0; i < 10; i++)
{
Console.WriteLine("其它任务" + i);
Thread.Sleep(r.Next(100,1000));
}
ts.ContinueWith((i) => //Continuewith 串行执行,waitall并行执行
{
Console.WriteLine("t1集合中返回的个数:" + string.Join(",", i.Result));
});
Console.WriteLine("aa");
ts.Wait(); //Don't end the application unless the sub thread await ends.
}
public static async Task<string> Getstr()
{
string result = string.Empty;
return await Task.Factory.StartNew(() =>
{
for (int i = 1; i < 10; i++)
{
Thread.Sleep(1000);
Console.WriteLine("异步输出:" + i);
result += i.ToString();
}
return result;
});
}
}
}
using System;
using System.Threading.Tasks;
namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
var task = new Task<string>[3] {
Task<string>.Factory.StartNew(()=> {return Bain("01"); }),
Task<string>.Factory.StartNew(()=> {return Bain("02"); }),
Task<string>.Factory.StartNew(()=> {return Bain("03"); })
};
Task tt=Task.WhenAll(task).ContinueWith((ts) =>
{
foreach (var t in ts.Result)
{
Console.WriteLine("Returned:" + t);
}
Console.WriteLine("All Finished");
});
Console.WriteLine("00");
tt.Wait();
}
public static string Bain(string str)
{
return str;
}
}
}