我的程序有一个根据用户输入执行命令的线程。有时,这些命令可能需要一段时间才能运行。
所以我需要为长时间运行的任务启动一个线程,以允许用户继续工作。
谷歌搜索了一下后,我找到了任务,并制作了以下代码:
private Thread t_Thread;
private void startTask()
{
Console.WriteLine("Starting");
Task t = Task.Factory.StartNew(() =>
{
for (int i = 0; i <= 4; i++)
{
Console.WriteLine(i);
Thread.Sleep(500); // Is this right?
}
});
Task.WaitAny(t);
Console.WriteLine("Ending");
}
private void button1_Click(object sender, EventArgs e)
{
t_Thread = new Thread(() => startTask());
t_Thread.Start();
}
它似乎工作正常,但我不确定我是否做得对。有些东西告诉我,我的做法是错误的。我有吗?