00001 /*** 00002 Implementation of multithreading class for speeding tensor field computing and updating 00003 ***/ 00004 #pragma once 00005 #include <QtCore/QThread> 00006 #include <QtCore/QMutex> 00007 #include <QtCore/QString> 00008 #include <QtCore/QtGlobal> 00009 class TfCore; 00010 00011 class ParaThread : 00012 public QThread 00013 { 00014 //Q_OBJECT 00015 00016 public: 00017 ParaThread(); 00018 00019 void setMessage(const QString &message); 00020 void stop(); 00021 void connectTensorField(TfCore *tfCore); 00022 void setID(int _ID); 00023 int getID(); 00024 00025 void setUpdateTensorFieldMission(int x1, int x2); 00026 protected: 00027 void run(); 00028 00029 private: 00030 QString messageStr; 00031 volatile bool stopped; 00032 volatile bool UpdateTensorFieldMission; 00033 TfCore *m_tfCore; 00034 QMutex _mutex; 00035 int m_split_field_x1, m_split_field_x2; 00036 int m_ID; 00037 };