私は今日、これを理解しようとして夢中になっています。ファイルの変更をキャプチャするために、しばらく FileSystemWatcher を使用しています。もともとフレームワーク 3.5 にあった私のプロジェクトの 1 つは、いくつかの EF を利用するために 4.0 に移動され、FileSystemWatcher を利用するコードを Visual Studio でデバッグする方法に影響を与えたようです。これが私が抱えている問題の小さな例です(watcher_Changedを参照):
class Program
{
static void Main(string[] args)
{
FileSystemWatcher watcher = new FileSystemWatcher(@"C:\inputFolder\");
watcher.Changed += new FileSystemEventHandler(watcher_Changed);
watcher.NotifyFilter = NotifyFilters.LastAccess
| NotifyFilters.LastWrite
| NotifyFilters.FileName
| NotifyFilters.DirectoryName;
Console.WriteLine("Ready");
watcher.EnableRaisingEvents = true;
Thread.Sleep(System.Threading.Timeout.Infinite);
}
static void watcher_Changed(object sender, FileSystemEventArgs e)
{
//This exception here (just an example), does not get sent to the debugger, rather it goes to the
//console and then the application exits
throw new ArgumentException();
}
}
ArgumentException をコンソールに投げた後、コードは常に閉じます。これにより、より複雑なシナリオでいくつかの主要なデバッグの問題が発生しています。
何か案は?