Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++11 का उपयोग करके टाइमर कैसे बनाएं

यहां हम C++ का उपयोग करके टाइमर बनाने का तरीका देखेंगे। यहां हम later नामक एक क्लास बना रहे हैं। इस क्लास में निम्नलिखित गुण हैं।

  • int (कोड चलाने तक प्रतीक्षा करने के लिए मिलीसेकंड)
  • bool (यदि यह सच है, तो यह तुरंत लौटता है, और निर्दिष्ट समय के बाद दूसरे थ्रेड पर कोड चलाता है)
  • वेरिएबल आर्गुमेंट्स (सटीक रूप से हम std::bind को फीड करना चाहते हैं)

हम precision बदलने के लिए chrono::milliseconds को nanoseconds या microseconds आदि में बदल सकते हैं।

उदाहरण कोड

#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);
    return 0;
}

आउटपुट

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

पहला परिणाम 4 सेकंड के बाद। दूसरा परिणाम पहले वाले के 3 सेकंड बाद।

  1. JavaFX का उपयोग करके चाप (Arc) कैसे बनाएं? JavaFX का उपयोग करके चाप (Arc) कैसे बनाएं?

    सामान्यतः, एक चाप एक वक्र का छोटा खंड होता है। JavaFX में इसे javafx.scene.shape.Arc क्लास द्वारा दर्शाया जाता है। इस क्लास में छह गुण होते हैं - centerX - यह गुण चाप के केंद्र का x निर्देशांक दर्शाता है। आप setCenterX() मेथड का उपयोग करके इस गुण का मान सेट कर सकते हैं। centerY - यह गुण चाप के कें

  1. Microsoft Access का उपयोग करके रिपोर्ट कैसे बनाएं Microsoft Access का उपयोग करके रिपोर्ट कैसे बनाएं

    एक रिपोर्ट डेटा को एक संगठित प्रारूप में सारांशित और प्रस्तुत करने के लिए उपयोग किया जाने वाला एक उपकरण है, आमतौर पर मुद्रित। रिपोर्ट्स और फॉर्म्स समान हैं, लेकिन फॉर्म्स का उपयोग डेटा देखने, इनपुट करने और संपादित करने के लिए किया जाता है और रिकॉर्ड्स का विस्तृत दृश्य प्रदान करते हैं और आमतौर पर स्क

  1. Microsoft Publisher का उपयोग करके प्रमाणपत्र कैसे बनाएं Microsoft Publisher का उपयोग करके प्रमाणपत्र कैसे बनाएं

    ऐसे कई व्यक्ति हैं जिन्हें आप किसी महान कार्य के लिए धन्यवाद देना चाहते हैं। ऐसे व्यक्ति जिन्होंने कुछ किया हो और आप उन्हें बधाई देना चाहते हों। यह काम पर, स्कूल में, घर पर या जहां भी हो सकता है, Microsoft Publisher के पास इस अवसर के लिए कुछ है। Publisher ऐसे व्यक्तियों और अवसरों के लिए प्रमाणपत्र ब