[HttpGet]
public async Task<string> TestUU()
{
ParentTsk().Wait();
Console.WriteLine("Hello World!");
return "ok";
}
public async static Task ParentTsk()
{
CancellationTokenSource cts = new CancellationTokenSource();
cts.CancelAfter(20);
Task<string> workTsk = Task.Run(async () => await WorkTsk());
Task<string> watchTsk = Task.Run(async () => await WatchTsk(cts.Token));
Task<string>[] tskArray = new Task<string>[] { watchTsk, workTsk };
var rsltTsk = await Task.WhenAny(tskArray);
Console.WriteLine($"执行结果{rsltTsk.Result}");
}
public async static Task<string> WorkTsk()
{
string fileName = @"d:\tstFile.txt";
List<int> lstINt = Enumerable.Range(0, 5000).ToList();
foreach (var item in lstINt)
{
await System.IO.File.AppendAllTextAsync(fileName, $"{item}|");
}
return "it is WorkTsk";
}
public async static Task<string> WatchTsk(CancellationToken token)
{
while (!token.IsCancellationRequested)
{
await Task.Delay(10);
}
return "it is WatchTsk";
}