別スレッドでフォルダ監視するには


checker2000  2005-11-25 03:04:29  No: 92905

checker2000です。初めて質問します。

現在VB6でアプリを作っています。
内容は、
フォームにリストビューと終了ボタンがそれぞれ1づつあります。
このアプリを起動すると、ある決められたフォルダの中身を監視し、
変更(ファイルが作られたなど)されたら、リストビューに
変更された時刻を追加していく。また、終了ボタンが押されたときは
アプリを閉じる。というアプリです。

この処理をAPIを使ってやってみてうまくいったのですが、
ずっと監視している為、終了ボタンが押せないのです。

使用しているAPIは、
FindFirstChangeNotification、
WaitForSingleObject
FindNextChangeNotification、
FindCloseChangeNotification、
です。

1.FileChangeNotificationからハンドルをもらう。
2.WaitForSingleObjectにハンドルと-1(ずっと監視)を渡し、
    変更されるまで待つ。
3.フォルダの中身が変更されたらリストビューに時刻を追加する。
4.FindNextChangeNotificationを呼ぶ。
5.2へ戻る。
6.FindCloseChangeNotificationで処理を終了する。

この監視する処理を別スレッド等でさせるには
どうすればよいのでしょうか?


abu  2005-11-25 06:02:32  No: 92906

別スレッド等?
等って?
VB6はマルチスレッドに対応していなかったはず。
VB.NETならできるでしょう。


K.J.K.  2005-11-25 18:15:07  No: 92907

WaitForSingleObjectではなく、MsgWaitForMultipleObjectsと
DoEventsとDo...Loopを組み合わせて使ってください。
# 別スレッドにするまでもない問題のような。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加