我创建了两个打印x和y各100次的方法。我想让它们并发运行,我期望输出结果为xxxxyxyxyyyxyyxyx...等等。 但是代码没有打印任何内容。我是否漏掉了一些逻辑?
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();
}
}
}
Program
在两个子线程中启动了两个任务,然后立即结束,结束了所有的子线程,因此两个Print
都没有运行。请等待这些任务结束。 - Marco Scabbiolo