当尝试以某种优先级同时运行多个方法时,我遇到了一些问题。以下是我的代码:
public static void Main(string[]args)
{
List<string> keyList = new List<string>();
var connecttask = Task.Factory.StartNew(() => getkeyword(0)).ContinueWith(prevTask => connect(1000, keyList));
}
getkeyword()方法必须先运行,因为它必须将List参数传递给connect()方法才能让connect()方法执行其任务。
但是,除非我在代码下插入一些Console.WriteLine,否则此代码不会运行,例如:
public static void Main(string[]args)
{
List<string> keyList = new List<string>();
var connecttask = Task.Factory.StartNew(() => getkeyword(0)).ContinueWith(prevTask => connect(1000, keyList));
Console.WriteLine("Connecting...");
Console.ReadLine();
}
为什么会这样?我不希望Console.WriteLine甚至Console.ReadLine在这里采用,因为这是我将在UI按钮后面实现的代码。有没有办法解决这个或任何其他方法同时运行多个方法但优先级?
感谢。
答案 0 :(得分:0)
显然我只是没有等待任务完成。 这是阻止它退出的代码段:
public static void Main(string[]args)
{
List<string> keyList = new List<string>();
var connecttask = Task.Factory.StartNew(() => getkeyword(0)).ContinueWith(prevTask => connect(1000, keyList));
connecttask.Wait();
}