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

淺析MFC多線程傳參問題

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

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

一、問題代碼

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主窗體方法調(diào)用

CTest test;

test.ThreadMethod(m_hWnd);

1.4 調(diào)試和說明

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

二、解決辦法

將test聲明為一個(gè)指針,通過指針來調(diào)用方法,如下:

test = new CTest();

test->ThreadMethod(m_hWnd);

test在頭文件里面聲明即可,再次斷點(diǎn)發(fā)現(xiàn)數(shù)據(jù)正常。

問題比較隱蔽,因?yàn)橹熬褪鞘褂弥羔樂绞秸{(diào)用,后來改成對(duì)象調(diào)用才出的問題,所以猜出來的,目前原理還不太明白。

【編輯推薦】

  1. Visual C++權(quán)威剖析--MFC的原理、機(jī)制與開發(fā)實(shí)例
  2. SQL Server mfc 數(shù)據(jù)庫類簡(jiǎn)介
  3. 巧妙解決PHP無法實(shí)現(xiàn)多線程的問題
  4. 多線程編程您不知道的5件事

 

責(zé)任編輯:于鐵 來源: 中國IT實(shí)驗(yàn)室
相關(guān)推薦

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

多任務(wù)多線程

2011-08-29 16:16:22

Lua函數(shù)多線程

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

設(shè)計(jì)電腦Java

2009-08-21 11:31:59

異步和多線程的區(qū)別

2021-03-05 07:38:52

C++線程編程開發(fā)技術(shù)

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開發(fā)Java多線程java面試題

2009-07-03 16:53:11

Servlet容器

2010-03-16 19:29:26

Java多線程操作

2009-08-17 14:08:33

C#進(jìn)度條使用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 岛国av在线免费观看 | 久久久成人网 | 日韩精品免费视频 | 在线婷婷 | 九九导航| 情侣酒店偷拍一区二区在线播放 | 在线免费观看黄色 | 蜜桃视频在线观看免费视频网站www | 国产熟熟 | 欧美黑人又粗大 | 国产精品免费在线 | 日韩视频在线观看中文字幕 | 日本不卡一区二区 | 日本特黄a级高清免费大片 成年人黄色小视频 | 日韩成人在线一区 | 国产成人精品一区二三区在线观看 | 日韩国产在线观看 | 久久成人国产精品 | 亚洲欧洲视频 | 久久综合九色综合欧美狠狠 | 成人亚洲一区 | 久久久久久久久久毛片 | 小草久久久久久久久爱六 | 亚洲精品99999 | 超碰在线播 | 日韩免费1区二区电影 | 日韩在线一区二区三区 | 黄色播放 | 免费麻豆视频 | 色综合一区二区 | 久久久久久免费毛片精品 | 玖玖操| 特级生活片 | 免费观看色 | 国产国语精品 | 久久久精品一区 | 久久久久久国产精品免费免费狐狸 | 国产在线1| 91视频久久 | 欧美a在线 | 91视频一区二区三区 |