如何在C#中优先同时运行多个方法?

时间:2017-10-29 15:43:27

标签: c# concurrency uwp

当尝试以某种优先级同时运行多个方法时,我遇到了一些问题。以下是我的代码:

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按钮后面实现的代码。有没有办法解决这个或任何其他方法同时运行多个方法但优先级?

感谢。

1 个答案:

答案 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();
}