高手进 关于多线程 C++设计类

来源:百度知道 编辑:UC知道 时间:2024/06/25 16:12:04
一、设计C++类(或Delphi类)CRuntimeMsg用于在多线程的程序环境记录程序运行信息,
要求记录程序运行信息如下格式:“CCYY-MM-DD HH:MM:SS.nnn 程序运行信息”
CRuntimeMsg类要求实现以下三个方法:
1、SetFile:设置信息的文件名
2、ThrowRuntimeMsg:用于在工作线程抛出程序运行信息
此方法实现将信息写入文件,并在类内用先进先出队列存储,供CatchRuntimeMsg方法提取
3、CatchRuntimeMsg:用于在界面线程提取程序运行信息进行显示
此方法实现从类内的先进先出队列提取并返回信息

小弟跪求此题思路,越具体越好,可能关系到我人生的转折点啊!

头文件:---------------------------
//假设程序运行在WINDOWS的MFC环境下,如果是UNIX自己改改
//线程中临界区类
class MyCS
{
public:
MyCS(){ ::InitializeCriticalSection(&mCS); }
~MyCS(){ ::DeleteCriticalSection(&mCS); }
private:
static CRITICAL_SECTION mCS;
public:
static void EnterCS() { ::EnterCriticalSection(&mCS); }
static void LeaveCS() { ::LeaveCriticalSection(&mCS); }
};
CRITICAL_SECTION MyCS::mCS;

#include <vector>
using namespace std;
class CRuntimeMsg
{
public:
CRuntimeMsg(void);
~CRuntimeMsg(void);
public:
void SetFile(LPCTSTR File);//设置信息的文件名
void ThrowRuntimeMsg(CString msg);//在工作线程抛出程序运行信息
CString CatchRuntimeMsg();//在界面线程提取程序运行信息进行显示
private:
static CString m_MsgFile;//信息文件名
static bool m_HadOpenFile;//文件是否已打开成功
static CStdioFile m_FileObj;//文件访问对象
static vector<CString> m_MsgList;//存储运行信息
MyCS m_cs;//线程临界区
};