コンソールアプリケーションは、実際に完了すると「実行中」として表示されます。

コンソールアプリケーションは、実際に完了すると「実行中」として表示されます。

タスク スケジューラでタスクを作成し、次の C# Hello World プログラムを実行しました。タスクをトリガーして完了するまで待つと、履歴でコンソール アプリケーションの実行が完了したことを確認できます。しかしスケジュールされたタスクのステータス列に、まだ実行中と表示されています。この矛盾は何でしょうか?

using System;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World");
        }
    }
}

スクリーンショット スケジュールされたタスク

答え1

根を張ってプロセスエクスプローラーCONHOST.EXE のインスタンスがまだ残っている可能性があります (つまり、コンソール アプリ用に生成されたインスタンス)。私は 1997 年以降 C コーディングを行っていません。当時は Borland C++ (つまり、.NET Framework 以前) でした。ただし、コードには明示的な戻りコードがありません。これにより、タスク スケジューラが終了を検出しないかどうかはわかりません。可能性は低いですが、試してみる価値はあります。

関連情報