私はMac用のコマンドラインユーティリティを書いていました。これは秒ごとにステータス情報を表示するはずです。明らかに、私は毎秒何千回も投票したくない。私が考えることができる唯一の他の方法は、現在の時間を取得し、選択を使用して差を待つことです。より良い方法がありますか?1秒に1回、2回に1回コードを実行できますか?
2
A
答えて
4
待っていると、少なくともその時間は待っていることが保証されています。 OSXはリアルタイムOSではありません。そのようなことを保証する方法はないと思います。
推定したいだけなら、現在とあなたが望む時間との差を寝かせます(おそらくログの時間を与えるのに少し時間がかかります)。
1
通常、タイマーを使用してメソッドをスケジューリングするのは、このトリックです。しかし、覚えておくことが重要ですが、精度は単純なタイマーでは最良ではありません。
1
は、ここで私が持っているものだ:それは十分に良いことがありますへの「目玉」の精度、作品
#import <stdlib.h>
#import <stdio.h>
#import <time.h>
#import <sys/time.h>
#define TIME_LENGTH 9
int main()
{
struct timeval now;
struct timespec wait;
time_t seconds;
char str[TIME_LENGTH];
wait.tv_sec = 0;
for (;;) {
gettimeofday(&now, NULL);
wait.tv_nsec = (1000000 - now.tv_usec) * 1000;
nanosleep(&wait, NULL);
seconds = now.tv_sec+1;
strftime(str, TIME_LENGTH, "%T", localtime(&seconds));
puts(str);
}
}
。それは組み込みのメニューバーの時計と同期して更新されているようです。明らかに、time.h
には、clock_nanosleep
の機能があります。一定時間待機するのではなく、一定時間待機することができますが、この使用法はMacではサポートされていません。
関連する問題
- 1. 1日に1回コードを実行
- 2. PHPコードを1週間に1回、ランダムに実行します。
- 3. クラスごとに1回、グループに1回実行する
- 4. タスクを定期的に実行する(1日に1回/週に1回)
- 5. Netbeans CUnitはアプリケーションの起動1回につき1回実行されます
- 6. symfonyはsafeguard_userテーブルで2回(空)1回、プロファイルテーブルで1回
- 7. SearchView onQueryTextSubmitを1回押すと2回実行する
- 8. 1回のリダイレクトで2回の操作
- 9. 月に1回実行するスケジュールタイマー - C#
- 10. ループを1秒でn回実行する方法
- 11. 1分に1回以上クロンジョブを実行するには?
- 12. 1回目の実行後にQTCreator segfault
- 13. Objective-c 1秒に1回カウントする方法
- 14. スマートフォンで1秒間に何回FFTを実行できますか? (音声認識を実行するため)
- 15. 1日に2回バックアップするには?
- 16. Handler、Timerは1回だけ実行できますか?
- 17. 1回のCSS3変換後にCSS3を2回変換する
- 18. XSLTでは、テンプレートを1回だけ実行できます
- 19. ASP.NET MVCでコードを1回だけ実行する
- 20. Rails 3で1日に1回実行するメソッドをスケジュールします
- 21. 1日に1回挿入する
- 22. URLを1日に1回ヒット
- 23. 実行時に別のレイアウトを1回使用しますか?
- 24. Ajax - ユーザー1回
- 25. 同時実行性 - 1リソースを1回編集する
- 26. PHPでループが1回実行される回数を動的に増やす
- 27. requestAccessToEntityType - 1回または毎回?
- 28. iOS - データベーススキーマを作成する(実行コードは1回のみ)
- 29. 1回目の起動時にXMLを1回だけ解析します。
- 30. 1秒間にn回何かするには?