私は2つのプロセスを持っています:1つはGUI、もう1つはCUIです。 それぞれは単純なWCFサービスをホストし、ネームパイプを介して相互に通信します。名前付きパイプとWCFサービスとのプロセス間通信:スレッドの発行
GUIアプリケーションには2つのボタンとプログレスバーがあります。
「実行開始」ボタンは、30秒間タスクを実行するようにCUIに指示します。 CUIはその進捗状況をGUIに報告し、プログレスバーを更新することができます。 「印刷」ボタンは、文字列を印刷するようにCUIに指示します。
今、私たちは数回のために、「印刷」ボタンを押すと、それは大丈夫です、CUIは、文字列を出力します:
私はボタン「実行を開始」を押すと、次に、CUIは、進捗状況を表示しますコンソールへと戻ってGUIに進捗状況を報告し、プログレスバーが更新されます:
をそれから私は、カップルのためのより多くの時間を「印刷」ボタンを押すことができ、それが動作します:
これはすべて良いようです。
しかし、私は、これらの二つのプロセスを再起動して、最初の「実行開始」ボタンをクリックすると、「印刷」ボタン、そして両方のプロセスが凍結されますクリックしてください:
これは、スレッドの問題のように見えますが。
私は印刷ボタンをクリックして始めると、すべてが機能しているようです。 しかし、私がスタート・ランニング・ボタンをクリックすると、デッド・ロックが発生します。 なぜですか?
ここからこのサンプルをダウンロードすることができます。http://files.cnblogs.com/cuipengfei/SampleForStackOverflow.zip
おかげで、複数の接続工事を開きます。ちなみに – CuiPengFei
では、別のスレッドでタスクを実行することでこの問題を解決することもできます。 – CuiPengFei