Advertisement
obernardovieira

Thread inside class with class function

Aug 9th, 2014
403
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.87 KB | None | 0 0
  1. #include <iostream>
  2. #include <thread>
  3. #include <chrono>
  4. #include <ctime>
  5.  
  6.  
  7. class tmp {
  8. private:
  9.     bool ativo;
  10.     int n;
  11.     void print_n() {
  12.         while(true) {
  13.             if(!ativo)
  14.                 return;
  15.                
  16.             std::clock_t start = std::clock();
  17.            
  18.            
  19.             while(std::clock() - start < 1000) {
  20.                 if(!ativo)
  21.                     return;
  22.             }
  23.  
  24.             std::cout << n << std::endl;
  25.            
  26.             //std::this_thread::sleep_for(std::chrono::seconds(1));
  27.         }
  28.     }
  29. public:
  30.     tmp() {
  31.         ativo = true;
  32.     }
  33.     void setativo(bool set) {
  34.         ativo = set;
  35.         return;
  36.     }
  37.     void set(int v) {
  38.         n = v;
  39.         return;
  40.     }
  41.    
  42.     void print() {
  43.         //print_n(n);
  44.         std::thread(&tmp::print_n, this).detach();
  45.         return;
  46.     }
  47. };
  48.  
  49.  
  50. tmp TMP;
  51.  
  52. int main()
  53. {
  54.  
  55.     TMP.set(5);
  56.    
  57.     TMP.print();
  58.    
  59.     while(true) {
  60.         int get;
  61.         std::cin >> get;
  62.         if(get == 0) {
  63.             TMP.setativo(false);
  64.             break;
  65.         }
  66.         TMP.set(get);
  67.     }
  68.  
  69.     return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement