#pragma once #include #include NS_BEGIN(Sia) NS_BEGIN(Api) class CSiaDriveConfig; class AFX_EXT_CLASS CAutoThread { public: CAutoThread(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig); public: virtual ~CAutoThread(); private: CSiaCurl _siaCurl; CSiaDriveConfig* _siaDriveConfig; HANDLE _stopEvent; std::unique_ptr _thread; std::mutex _startStopMutex; protected: void StartAutoThread(); void StopAutoThread(); virtual void AutoThreadCallback(const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig) = 0; }; NS_END(2)