2

WinForms と ConsoleApplication プロジェクトがあります。起動時に両方のプロジェクトを開始し、WinForms アプリからコンソール アプリケーションに「ライブ」情報を書き込みたいと考えています。コンソール アプリは非常にシンプルです。

 static void Main(string[] args)
 {
     while (true)
     {
         // This prevents the console from dying
         Console.ReadKey();
     }
  }

  public static void WriteMessage(string message)
  {
     Console.WriteLine(message);
  } 

そしてWriteMessage、WinForms アプリから関数を呼び出しますが、これは機能しません。WriteMessage メソッドにブレークポイントを入れてヒットするのですが、コンソール画面に何も置かれていないのは while ループのせいかと思いますmain。while ループを別のスレッドに入れてみましたが、それでも成功しませんでした。どんな助けでも大歓迎です。

4

1 に答える 1

6

コンソールは、Visual Studio プロジェクトではなく、プロセスに属します

ほとんどのアプリケーション (WinForms アプリを含む) には非表示のコンソールがあります。
WinForms プロセスからコンソール プロジェクトを呼び出してWriteMessage()も、WinForms プロセスのコンソールに書き込みが行われるため、何も表示されません。

代わりに、コンソール プロジェクトを削除してOutput Typeから、WinForms アプリ ([プロジェクト プロパティ] 内) を [コンソール アプリケーション] に設定する必要があります。
これにより、WinForms アプリにコンソールが表示されるようになり、そのまま機能しConsole.WriteLineます。

于 2013-02-22T03:35:17.787 に答える