最初に、サイトで同様の質問に対するいくつかの回答を読みましたが、正直なところ、それらは少し混乱していると思います(回答ではなく経験が不足しているためです!)。FileSystemWatcher()クラスを使用して、作成/変更されているファイルのフォルダーを監視しています。イベントが発生したら、プロジェクトに別のフォームをロードします。フォームをロードする代わりに、新しいフォームのコンストラクターが実行しようとするとエラーが発生します。私は1つのスレッドのみを使用しています-別のスレッドでフォームをロードしようとはしていません。私のコードは次のとおりです
//MainWindow
public static void FolderWatcher()
{
FileSystemWatcher fsWatcher = new FileSystemWatcher();
fsWatcher.Path = "C:\\dump";
fsWatcher.Filter = "*";
fsWatcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
fsWatcher.Created += new FileSystemEventHandler(OnChanged);
fsWatcher.EnableRaisingEvents = true;
}
public static void OnChanged(object source, FileSystemEventArgs e)
{
var imagePreview = new ImagePreview();
imagePreview.Show();
}
//SecondForm
public partial class ImagePreview : Window
{
public ImagePreview()
{
InitializeComponent(); //error occurs here
}
}
よろしくお願いします。よろしくお願いします。