0

セットディレクトリ内のFileSystemWatcher他のファイルに対しては正常に動作しますが、別のプログラムによってほぼ毎秒更新されるファイルに対しては、GUI でOnChangeda をクリックした場合にのみイベントが発生します。と のbutton間にリンクを作成していません。butttonFileSystemWatcher

OnChanged イベントを呼び出すタイマーを実装することで、これを解決しようとしています。

private void timer1_Tick(object sender, EventArgs e)
{
   foreach(Page p in pages)
    {
     p.HandleFileChanged(sender, (FileSystemEventArgs)e);
    }
}

EventArgsしかし、キャストできませんFileSystemEventArgs(試してみる価値があります!)

私のPageクラスはFileSystemWatcher、特定のファイルを監視するために を実装しています。

HandleFileChaned メソッドを呼び出したいのですが、ヘッダーは次のようになります。

public void HandleFileChanged(object source, FileSystemEventArgs e)
4

2 に答える 2

1

次のような別のレイヤーを追加しない理由をお聞きします。

public void HandleFileChanged(object source, FileSystemEventArgs e)
{
    HandleFileChange(<path and file>);
}

public void timer1_Tick(object source, EventArgs e)
{
    HandleFileChange(<path and file>);
}

private void HandleFileChange(string pathAndFile)
{
    // Do what you have to do
}
于 2012-10-25T10:12:26.973 に答える
0

独自の FileSystemEventArgs を作成してみませんか?

var args = new FileSystemEventArgs(WatcherChangeTypes.All, "MyDir", "MyFile");
p.HandleFileChanged(sender, args);
于 2012-10-25T10:08:15.527 に答える