面对现实,超越自己
逆水行舟,不进则退
posts - 269,comments - 32,trackbacks - 0
MFC一种线程的使用方法

在.h文件中。
 1 struct MonitorPara 
 2 {
 3     enum SaveType
 4     {
 5         OnlySend,
 6         SendSave,
 7         SendErrorSave
 8     };        
 9     
10     int        m_nListenPort;        // monitor local ip port
11     CString m_sServerIP;            // send data server ip
12     int        m_nServerPort;        // send data server port
13 
14     SaveType m_SaveType;
15     CString     m_sDataBufDir;
16 };
17 
18 static UINT ListeningThreadProc(LPVOID lparam);

在.cpp文件中。
 1 UINT CSocketPrinter::ListeningThreadProc(LPVOID lparam)
 2 {
 3     //CFileWatcher* obj = (CFileWatcher*)lParam;
 4     CSocketPrinter::MonitorPara para = *((CSocketPrinter::MonitorPara*)lparam);
 5 
 6 
 7 }
 8 
 9 BOOL CSocketPrinter::StartMonitor(const MonitorPara &para)
10 {
11     CWinThread* pThread = AfxBeginThread(ListeningThreadProc, (LPVOID)&para);
12 
13     return (pThread && pThread->m_hThread);
14 }

调用线程.cpp文件中。
 1 CSocketPrinter obj;
 2 CSocketPrinter::MonitorPara para;
 3 
 4 HANDLE h_Thread = NULL;
 5 h_Thread  = obj.StartMonitor(para);
 6 
 7 if (!h_Thread)
 8 {
 9     LOG("获取线程句柄出错");
10     return;
11 }

强制结束线程
1 ::TerminateThread(h_Thread, 0);
posted on 2012-04-26 13:35 王海光 阅读(460) 评论(0)  编辑 收藏 引用 所属分类: MFC

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理