v4.5.1 で .NET コンソール アプリ (C#) を作成しました。私のMain
方法は次のようになります。
public static void Main(string[] args)
{
Console.CancelKeyPress += delegate
{
CancelToken.Cancel();
};
var kbTask = Task.Run(async () =>
{
while (true)
{
await ProcessCommand(Console.ReadLine());
}
}, CancelToken.Token);
kbTask.Wait(CancelToken.Token);
}
可能なコマンドの 1 つ (によって処理される) は、デリゲートProcessCommand
を介して CTRL + C を使用してキャンセルできるようにしたい長時間実行プロセスを呼び出します。Console.CancelKeyPress
しかし、これを行うと、Visual Studio は「mscorlib.dll がロードされていません」というタブを開き、何もしません。コンソールは開いたままですが、応答しません。
また、デバッグ以外でアプリを実行しようとしましたが、実行可能ファイルが見つかりません。