私はスケジュールされたタスクとして実行するコンソールアプリケーションを作成していますが、クローズボタンを使用して閉じるときに実行中のコードのfinallyブロックを実行するようには見えません。デバッガを介して実行すると、これはConsole.WriteLine
行にブレークポイントにヒットしませんC#コンソールアプリケーションが最終ブロックを呼び出さない
using System;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
try
{
Thread.Sleep(60000);
}
finally
{
Console.WriteLine("Finally");
}
}
}
}
:私は、次の非常に単純なコンソールアプリケーションでこの動作を再現しようとしました。この単純なテストが意図したとおりに動作するのか、なぜfinallyブロックがこのテストまたは私のプロダクションコードで動作しないように見えるのか分かりません。
私はついにブロックを考えましたいつもが実行されていますか?ここで何が起こっているのですか?
それは私が何をする必要があるかが判明し、この答えでコードを使用しています: http://stackoverflow.com/questions/474679/capture-console-exit-c/474743#474743 –