mysingalthreadtimer.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #include "mysingalthreadtimer.h"
  2. MySingalThreadTimer* MySingalThreadTimer::m_pMySingalThreadTimer = nullptr;
  3. MySingalThreadTimer::MySingalThreadTimer(QObject *parent)
  4. : QThread(parent)
  5. {
  6. m_pTimer = nullptr;
  7. }
  8. MySingalThreadTimer::~MySingalThreadTimer()
  9. {
  10. }
  11. MySingalThreadTimer* MySingalThreadTimer::GetInstance()
  12. {
  13. if (m_pMySingalThreadTimer == nullptr)
  14. {
  15. m_pMySingalThreadTimer = new MySingalThreadTimer(nullptr);
  16. }
  17. return m_pMySingalThreadTimer;
  18. }
  19. void MySingalThreadTimer::FreeInstance()
  20. {
  21. if (m_pMySingalThreadTimer)
  22. {
  23. delete m_pMySingalThreadTimer;
  24. m_pMySingalThreadTimer = nullptr;
  25. }
  26. }
  27. void MySingalThreadTimer::InitTimerObjects()
  28. {
  29. if (m_pTimer == nullptr)
  30. {
  31. m_pTimer = new MyTimer();
  32. //m_pTimer->CreateRunableFactory();
  33. m_pTimer->setInterval(1000/*2 * 60 * 60 *1000*/ );
  34. m_pTimer->start();
  35. connect(m_pTimer, SIGNAL(timeout()), m_pTimer, SLOT(timout_Slot()),Qt::DirectConnection);
  36. }
  37. }
  38. void MySingalThreadTimer::StartTimer()
  39. {
  40. if (m_pTimer)
  41. {
  42. m_pTimer->m_bRuning = true;
  43. }
  44. }
  45. void MySingalThreadTimer::StopTimer()
  46. {
  47. if (m_pTimer)
  48. {
  49. m_pTimer->m_bRuning = false;
  50. }
  51. }
  52. void MySingalThreadTimer::run()
  53. {
  54. DeleteAllTimer();
  55. InitTimerObjects();
  56. exec();
  57. }
  58. void MySingalThreadTimer::timout_Slot()
  59. {
  60. }
  61. void MySingalThreadTimer::DeleteAllTimer()
  62. {
  63. if (m_pTimer)
  64. {
  65. m_pTimer->m_bRuning = false;
  66. m_pTimer->stop();
  67. delete m_pTimer;
  68. m_pTimer = nullptr;
  69. }
  70. }