我創建了兩種方法可以打印x和y 100次。我希望它們能夠併發運行,並且我希望輸出是xxxxyxyyyxyyxyx ... sthg。 它不打印任何東西。我在這裏錯過了一些邏輯嗎?爲什麼控制檯上沒有打印?
using System;
using System.Threading.Tasks;
namespace ConsoleApplication32
{
internal class Program
{
public static async Task<int> Print1()
{
await Task.Run(() =>
{
for (int i = 0; i < 100; i++)
{
Console.Write("x");
}
});
return 1;
}
public static async Task<int> Print2()
{
await Task.Run(() =>
{
for (int i = 0; i < 100; i++)
{
Console.Write("y");
}
});
return 1;
}
public static void Run()
{
Task<int> i = Print1();
Task<int> k = Print2();
}
private static void Main(string[] args)
{
Run();
}
}
}
爲什麼不直接附加調試器並查看? – Liam
'Program'在子線程中加載兩個任務並立即結束,結束所有它的子線程,所以'Print'都不會運行。等待任務結束。 –