Yic*_*Lin 0 c# multithreading console-application
我在控制台应用程序中使用 while 循环创建多个任务。
从数据库中选择和更新记录。
我的程序只会执行一次然后关闭窗口。
如何保持控制台窗口打开,并无限运行任务。
static void Main(string[] args)
{
Task.Run(async () => // <- marked async
{
while (true)
{
InsertProcess(GameList.RO1);
await Task.Delay(5000);
}
});
Task.Run(async () => // <- marked async
{
while (true)
{
InsertProcess(GameList.ROS);
await Task.Delay(5000);
}
});
}
public static void InsertProcess(Game game)
{
using (SqlConnection conn = new SqlConnection(RO1DBConn))
{
// ... query database
}
}
Run Code Online (Sandbox Code Playgroud)
每个 Task.Run 返回一个任务对象。您必须收集这些引用,并使用 Task.WaitAll 方法等待这两个任务完成。WaitAll 等待任务记录数组。
Task task1 = Task.Run(async () => // <- marked async
{
while (true)
{
InsertProcess(GameList.RO1);
await Task.Delay(5000);
}
});
Task task2 = Task.Run(async () => // <- marked async
{
while (true)
{
InsertProcess(GameList.ROS);
await Task.Delay(5000);
}
});
Task.WaitAll(new []{task1, task2});
Run Code Online (Sandbox Code Playgroud)