成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析MFC多線程傳參問題

開發 后端
MFC中使用多線程比較簡單,本文主要介紹了幾種常見的問題,每一個問題通過例子做詳細的說明。下面我們一起來看。

在一個程序中,這些獨立運行的程序片斷叫作“線程”(Thread),利用它編程的概念就叫作“多線程處理”。多線程處理一個常見的例子就是用戶界面。利用線程,用戶可按下一個按鈕,然后程序會立即作出響應,而不是讓用戶等待程序完成了當前任務以后才開始響應。MFC中使用多線程比較簡單,大家都推薦用AfxBeginThread來實現,但使用過程中確遇到傳入this之后不能得到對象內部字段數據的問題。

一、問題代碼

1.1 Test.h

 

  1. #pragma once  
  2. class CTest  
  3. {  
  4. public:  
  5. CTest(void);  
  6. ~CTest(void);  
  7. void ThreadMethod(HWND hWnd);  
  8. HWND m_hWnd;  
  9. };  
  10.  

 1.2 Test.cpp

 

  1. #include "StdAfx.h"  
  2. #include "Test.h"  
  3. CTest::CTest(void)  
  4. {  
  5. }  
  6. CTest::~CTest(void)  
  7. {  
  8. }  
  9. UINT ThreadProc(LPVOID lpParam)  
  10. {  
  11. CTest* test = (CTest*)lpParam;  
  12. HWND hWnd = test->m_hWnd;  
  13. return 0;  
  14. }  
  15. void CTest::ThreadMethod(HWND hWnd)  
  16. {  
  17. this->m_hWnd = hWnd;  
  18. AfxBeginThread(ThreadProc,this);  
  19. }  

 1.3 MFC主窗體方法調用

CTest test;

test.ThreadMethod(m_hWnd);

1.4 調試和說明

將斷點打到ThreadProc方法的“HWND hWnd = test->m_hWnd;”,執行發現是空的,而在CTest::ThreadMethod處明明賦值了!實際中還發現變量類型是int可以傳遞,CString傳之后就是亂碼或非原始數據了。

二、解決辦法

將test聲明為一個指針,通過指針來調用方法,如下:

test = new CTest();

test->ThreadMethod(m_hWnd);

test在頭文件里面聲明即可,再次斷點發現數據正常。

問題比較隱蔽,因為之前就是使用指針方式調用,后來改成對象調用才出的問題,所以猜出來的,目前原理還不太明白。

【編輯推薦】

  1. Visual C++權威剖析--MFC的原理、機制與開發實例
  2. SQL Server mfc 數據庫類簡介
  3. 巧妙解決PHP無法實現多線程的問題
  4. 多線程編程您不知道的5件事

 

責任編輯:于鐵 來源: 中國IT實驗室
相關推薦

2010-02-01 17:25:09

Python多線程

2009-07-03 17:18:34

Servlet多線程

2009-08-12 18:04:44

編寫C#多線程

2010-03-03 17:44:07

Python多線程

2009-07-17 17:29:13

多任務多線程

2011-08-29 16:16:22

Lua函數多線程

2011-06-24 11:12:39

Qt 多線程 線程

2011-06-24 11:03:31

Qt 多線程 線程

2009-04-27 13:15:04

多線程方法run()

2019-09-26 10:19:27

設計電腦Java

2009-08-21 11:31:59

異步和多線程的區別

2021-03-05 07:38:52

C++線程編程開發技術

2014-08-13 10:41:08

linux線程

2010-01-18 14:09:58

C++多線程

2015-12-22 10:39:52

Java多線程問題

2017-01-19 10:24:38

Java多線程問題

2013-05-29 10:47:50

Android開發Java多線程java面試題

2009-07-03 16:53:11

Servlet容器

2010-03-16 19:29:26

Java多線程操作

2009-08-17 14:08:33

C#進度條使用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: julia中文字幕久久一区二区 | 在线视频亚洲 | 99re视频在线观看 | 日韩在线欧美 | 精品久久久久久久久久久久久久 | 亚洲国产精品久久久 | 一区二区三区欧美大片 | 日韩一区二区三区四区五区六区 | 亚洲一区二区视频 | 鸡毛片| 亚洲国产中文字幕 | 天天操网| 不卡一区二区三区四区 | 亚洲三级视频 | 99re视频这里只有精品 | 三级在线观看 | 久久久久久国产精品免费免费 | 欧美视频二区 | 午夜爱爱毛片xxxx视频免费看 | 国产精品久久久久久久久免费 | 色综合天天综合网国产成人网 | 成人在线视频一区二区三区 | 91精品久久久久久久久 | 国产高清免费视频 | 午夜电影网 | 久久久久久久一区二区三区 | 亚洲色综合 | 欧美激情五月 | 欧美自拍视频 | 99这里只有精品 | 三级免费av | 亚洲欧洲国产视频 | 欧美日韩手机在线观看 | 亚洲精品91 | 在线视频国产一区 | 成人午夜免费福利视频 | 综合久久综合久久 | 成人a网 | 高清一区二区视频 | www97影院 | 黄网站涩免费蜜桃网站 |