2016-04-28 22 views
-6

私はこの質問が1000回答えられたことは知っていますが、私はまだ同時に働く機能を得ることができません。ここに私のコードはあります:2つの機能を同時に実行するには?

l

この関数は文字 'a'を書いて、0.1秒後にスペースを追加します。複雑ではありません。関数が終了すると、同じことが再び行われます。私は両方の機能が同時に働くようにしたい、最初の行の最初の機能と2番目の行の2番目の機能。 ありがとうございます。

+3

非同期プログラミングは、非常に広いトピックです。私は[非同期プログラミングパターン](https://msdn.microsoft.com/en-us/library/jj152938(v = vs.110).aspx)を読むことをお勧めします。 –

+3

質問が何千回も返答された場合、何故解決しなかったのはなぜですか? – Gusman

+0

彼は以前に出力された行に戻ってスペースを追加する方法を求めています。 –

答えて

0

簡単な解決策は、2つのスレッドを作成して開始し、終了するのを待つことです。あなたの特定の質問について:a機能がオンに書くためにどのライン、知らないよう

static void Main(string[] args) 
{ 
    var t1 = new Thread(a); t1.Start(); 
    var t2 = new Thread(a); t2.Start(); 
    t1.Join(); t2.Join(); 
} 

しかし、もちろんの

が、これは、コンソールの異なるラインへの書き込み、あなたの最初の問題を解決していません。これを解決するには、行番号のパラメータを追加します。

さらに、複数のソースがデータを書き込む単一のターゲットであり、正しく同期されていないと矛盾が発生する可能性があるため、コンソール出力をロックで保護する必要があります。ですから、実際には、マルチスレッドに関するチュートリアルを読むことをお勧めします。

+0

@Transcendentalの注意を説明する? – derpirscher

+0

"最も簡単"を定義します。あなたはローマの答えを見た? –

+0

@roryapポイントを獲得しました。 – derpirscher

2

あなたはParallelクラスを使用することができます。

static void Main(string[] args) 
{ 
    Parallel.Invoke(a,a); 
} 

あなたの機能が同時に実行されます。

関連する問題