You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/nmNum/nmCalculation/nmCalculationPebiGridTask.h

39 lines
1.2 KiB
C

#ifndef NMCALCULATIONPEBIGRIDTASK_H
#define NMCALCULATIONPEBIGRIDTASK_H
#include <QThread>
#include "nmCalculation_global.h"
class nmDataAnalyzeManager;
class NMCALCULATION_EXPORT nmCalculationPebiGridTask : public QThread
{
Q_OBJECT
public:
/** @brief 创建绑定到指定分析窗口的后台网格生成任务。 */
explicit nmCalculationPebiGridTask(nmDataAnalyzeManager* pDataManager,
QObject *parent = 0);
/** @brief 等待线程结束,并释放 DataManager 后台使用权。 */
~nmCalculationPebiGridTask();
signals:
/** @brief 无论成功或失败均通知主线程结束本轮网格任务。 */
void pebiGridGenerated(bool success);
protected:
/** @brief 线程入口:为捕获的数据管理器后台生成 PEBI 网格。 */
void run() override;
private:
/** @brief 成对释放构造时登记的 DataManager 后台使用权。 */
void releaseDataManagerUse();
/** @brief 启动任务时捕获所属数据管理器,线程内不再读取全局当前窗口。 */
nmDataAnalyzeManager* m_pDataManager;
bool m_bManagerUseActive; ///< 是否仍持有 DataManager 后台使用权。
};
#endif // NMCALCULATIONPEBIGRIDTASK_H