C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++ 11を使用してタイマーを作成するにはどうすればよいですか?


ここでは、C++を使用してタイマーを作成する方法を説明します。ここでは、後で呼び出される1つのクラスを作成しています。このクラスには次のプロパティがあります。

  • int(コードを実行するまで待機するミリ秒)
  • bool(これがtrueの場合、すぐに戻り、指定された時間後に別のスレッドでコードを実行します)
  • 可変引数(正確にはstd ::bindにフィードしたい)

精度を変更するために、chrono::millisecondsをナノ秒またはマイクロ秒などに変更できます。

サンプルコード

#include <functional>
#include <chrono>
#include <future>
#include <cstdio>
class later {
   public:
      template <class callable, class... arguments>
      later(int after, bool async, callable&& f, arguments&&... args){
      std::function<typename std::result_of<callable(arguments...)>::type()> task(std::bind(std::forward<callable>(f), std::forward<arguments>(args)...));
      if (async) {
         std::thread([after, task]() {
            std::this_thread::sleep_for(std::chrono::milliseconds(after));
            task();
         }).detach();
      } else {
         std::this_thread::sleep_for(std::chrono::milliseconds(after));
         task();
      }
   }
};
void test1(void) {
   return;
}
void test2(int a) {
   printf("result of test 2: %d\n", a);
   return;
}
int main() {
   later later_test1(3000, false, &test1);
   later later_test2(1000, false, &test2, 75);
   later later_test3(3000, false, &test2, 101);
}

出力

$ g++ test.cpp -lpthread
$ ./a.out
result of test 2: 75
result of test 2: 101
$

4秒後の最初の結果。最初の結果から3秒後の2番目の結果


  1. MicrosoftAccessを使用してレポートを作成する方法

    レポート は、データを整理された形式で要約および表示するために使用されるツールであり、通常は印刷されます。 レポート およびフォーム は似ていますが、フォームはデータの表示、入力、編集に使用され、レコードの詳細を表示し、通常は画面に表示されます。 レポート 情報の表示、要約、およびデータのグループ化に使用され、画面に表示されますが、通常は印刷されます。 Accessのレポートデザインツール レポート :基本的なレポートを作成します 現在のクエリのデータの またはテーブル グループを追加できます または合計 レポートデザイン :新しい空白のレポートを作成します デザインビュー 。カスタムコン

  2. MicrosoftPublisherを使用して証明書を作成する方法

    たくさんの人がいて、すばらしい行いをしてくれたことに感謝したいと思います。何かをした可能性があり、あなたが祝福したい人。職場、学校、自宅、またはどこにいても、 Microsoft Publisher その機会に何かを持っています。出版社は、これらの人や機会のための証明書を作成するのに最適です。出版社の証明書は、大人または子供向け、業務用、またはよりリラックスしたものにすることができます。 これらの発行者証明書は、誕生日、記念日、学校や職場での成果、感謝の気持ちを表すのに最適な方法、従業員の表彰などに使用できます。出版社の証明書は非常に多くの場面で使用でき、安価で簡単に作成できます。これによ