いくつかの情報をグラフの形で表示するプログラムがあります。情報は毎月更新されるため、月に 1 回情報を取得する必要があります。
1か月間スリープするスレッドを持つことを考えましたが、それが可能かどうかはわかりません。誰かがこれを行うためのより良い方法を提案できますか?
ありがとう!
いくつかの情報をグラフの形で表示するプログラムがあります。情報は毎月更新されるため、月に 1 回情報を取得する必要があります。
1か月間スリープするスレッドを持つことを考えましたが、それが可能かどうかはわかりません。誰かがこれを行うためのより良い方法を提案できますか?
ありがとう!
最後にアクセスした日付をファイル/テーブルに保存し、プログラムの開始時に毎日ファイル/テーブルをポーリングできます。1 か月 (30/31 日) を超える場合は、データを再取得してください。
.NETのクラスを使用してDateTime
、それを支援します。DateTime.Subtract()
2 つの日付の間でも使用します。
ここで何をしようとしているのか気になります。聞こえます...奇妙です。
それで、情報はどこから来ているのですか?データベース?もしそうなら、普通にデータを引っ張った時の月の値を計算していただけませんか?または、計算された値で月に 1 回テーブルを更新するジョブを SQL エージェントで実行することもできます。
実際にウィンドウを使用すると、同様の概念でスケジュールされたタスクを設定できます。月に 1 回実行され、新しいデータが取り込まれます。
しかし、基本的には、あなたが何をしようとしているのかについてもう少し情報があれば、より良い回答を提供するのに役立つかもしれません..
起動時にスレッドが開始され、次の読み取り時間までの時間を計算する実装を見てきました。スレッド内では、(アプリによって起動される) シャットダウン イベントが通知されるのを待ちます。タイムアウト値は、以前に計算された時間です。待機が完了すると、シャットダウン イベントが原因でない場合は、データが読み取られます。
ただし、私が見たより一般的な実装は、スケジュールされたタスクを使用してデータをアプリにロードすることです。これは、スレッド化されたバージョンよりも実装に時間がかかりますが、より堅牢なソリューションを提供するはずです。