DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ファイル更新監視について

環境/言語:[XP+VB.NET2003]
分類:[.NET]

FileSystemWatcherで1つのファイルのLastWriteを非同期で監視して、
イベントが発生したら特定のデータベースから数10件のデータを取得し、
DataGridに表示するようにしています。
問題なのは、監視をしてイベントが発生してDataGridにデータが表示されると、
「応答なし」の状態になってしまうのです。
イベントが発生した時のルーチンは最後までエラーなしで動いており、
Try-Catchではエラーが検出できず、一体なにが原因か検討がつきません。
なにか解決のヒントを頂けたら助かります。よろしくお願いします。

//設定部
With FileWatcher
.NotifyFilter = IO.NotifyFilters.LastWrite
.IncludeSubdirectories = False
.Filter = "test.tst"
AddHandler FileWatcher.Changed, AddressOf FileOnChanged
End With
//イベントハンドラー
Private Sub FileOnChanged(省略)
FileWatcher.EnableRaisingEvents = False
DataSet1.Clear()
OleDataAdapter1.Fill(DataSet1, "TEST")
FileWatcher.EnableRaisingEvents = True
End Sub
■No6204に返信(シノビさんの記事)

 シノビさん、こんばんは。深山と申します。

> FileSystemWatcherで1つのファイルのLastWriteを非同期で監視して、
> イベントが発生したら特定のデータベースから数10件のデータを取得し、
> DataGridに表示するようにしています。
> 問題なのは、監視をしてイベントが発生してDataGridにデータが表示されると、
> 「応答なし」の状態になってしまうのです。

 単純に処理に時間が掛かっているということはないのでしょうか? 扱ってるデータは
数十件とのことですので、別の要因かも知れませんけど‥‥。

 取り敢えず、こちらは参考になるでしょうか?

.NET TIPS 時間がかかる処理での「応答なし」を回避するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/136doevents/doevents.html

DOBON.NET | プログラミング道 | プログラミング掲示板