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

定期的な処理

  • 題名: 定期的な処理
  • 著者: ぽい
  • 日時: 2006/04/26 19:13:26
  • ID: 15513
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[WindowsXP VS2003]
分類:[.NET]

はじめまして。
現在、下記について悩んでおります。
どなたか、私の救世主になって下さい。

定期的に(例えば1[秒]周期)で、任意のフォルダに作成されるファイルの個数をカウントするプログラムがあるとします。そして、1[秒]毎にその時点でのファイルの個数をテキストファイルにログデータとしてアペンド保存していきます。
この時、同一アプリケーション内で、オペレーターが何らかの操作を行った時、後で、ログファイルをみるとその時の時間帯のデータが欠落している場合があります。
これを解決する方法をどなたかアドバイス願えませんでしょうか?
一応、スレッドを使ってはいるのですが...
どのようにしてその定期的な処理を実現していますか?
System.Threading.Timer が向いてそうな分野ですが。
■No15514に返信(Hongliangさんの記事)
> どのようにしてその定期的な処理を実現していますか?
> System.Threading.Timer が向いてそうな分野ですが。

 早々の対応、感謝します。
 現在は最低周期が1[秒]ですので、NextTime = DateAdd(DatetInterval.Second, 1, Now()) で次回の時刻をセットし、
スレッド内のループで、現在時刻と比較しながら実現しています。
  • 題名: Re[3]: 定期的な処理
  • 著者: ぽい
  • 日時: 2006/04/26 20:08:03
  • ID: 15516
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
System.Threading.Timer 使えそうです。
現在、本体に組み込んでます。
後程、結果報告します。
> スレッド内のループで、現在時刻と比較しながら実現しています。

「比較」の仕方がまずかったんでしょうね。

等号=完全一致で評価してしまうと、ほんのちょっとPCに負荷がかかっただけで「処理抜け」してしまうのは避けようがありません。

不等号で評価するべきです。

が、既にコメントがついているように、タイマを用いる方がもっとスマートでしょうね。
報告、遅くなりすいませんでした。
最終的には、まだ、大丈夫ともいえませんが、CPUにあまり負荷が掛からない状態で、動作確認してみましたが、1[秒]周期でも取りこぼしなく、処理をしています。
Hongliangさん、ひどりさん、有難うございました。
今回、初めて参加しましたが、対応がとても良く、助かりました。
他の掲示板では、困っている人に対して、中傷気味に意見する人も居て、人間性を疑う様な書込みも見て、ガッカリしてました。
今後は、よくチェックして、逆に誰かの助けになる様、頑張って勉強(仕事?)します。
ありがとうございました。
  • 題名: Re[5]: 定期的な処理
  • 著者: ぽい
  • 日時: 2006/04/27 20:11:51
  • ID: 15532
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No15531に返信(ぽいさんの記事)
> 報告、遅くなりすいませんでした。
> 最終的には、まだ、大丈夫ともいえませんが、CPUにあまり負荷が掛からない状態で、動作確認してみましたが、1[秒]周期でも取りこぼしなく、処理をしています。
> Hongliangさん、ひどりさん、有難うございました。
> 今回、初めて参加しましたが、対応がとても良く、助かりました。
> 他の掲示板では、困っている人に対して、中傷気味に意見する人も居て、人間性を疑う様な書込みも見て、ガッカリしてました。
> 今後は、よくチェックして、逆に誰かの助けになる様、頑張って勉強(仕事?)します。
> ありがとうございました。
解決済み!

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