2017-10-29 4 views
-1

複数のメソッドを何らかの優先度で同時に実行しようとすると、何らかの問題に直面しています。以下は私のコードです:それはそのタスクを実行するには、connect()メソッドをさせるために()メソッドを接続するためのリストのパラメータを渡す必要があるためC#で複数のメソッドを同時に優先度で実行するには?

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()メソッドは、最初に実行する必要があります。私は、例えば、コードの下にいくつかの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(); 
} 

これはなぜ起こるのでしょうか?私はUIボタンの背後に実装しようとしているコードなので、Console.WriteLineやConsole.ReadLineをここに配置したくないのです。これを解決する方法はありますか?複数の方法を同時に実行する方法もありますが、優先順位はありますか?

ありがとうございました。

+0

それはあなたのプログラムがあなたの最初のスニペットのコードと期待される動作されるであろう、終了しているように聞こえるが。これは、Console.ReadLineによって終了したり、タスクを「実行」することを妨げています。そうでなければあなたの仕事の結果を待つ必要があります – pinkfloydx33

+0

ああ私はそこに待機方法を追加し、それは動作します!どうもありがとうございます!! @ pinkfloydx33 – Corene

答えて

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(); 
} 
関連する問題