MFC多線(xiàn)程傳參問(wèn)題怎么解決

本篇內(nèi)容主要講解“MFC多線(xiàn)程傳參問(wèn)題怎么解決”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“MFC多線(xiàn)程傳參問(wèn)題怎么解決”吧!

創(chuàng)新互聯(lián)建站專(zhuān)注于隴川企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開(kāi)發(fā),商城系統(tǒng)網(wǎng)站開(kāi)發(fā)。隴川網(wǎng)站建設(shè)公司,為隴川等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

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

一、問(wèn)題代碼

1.1 Test.h

#pragma once  class CTest  {  public:  CTest(void);  ~CTest(void);  void ThreadMethod(HWND hWnd);  HWND m_hWnd;  };

1.2 Test.cpp

#include "StdAfx.h"  #include "Test.h"  CTest::CTest(void)  {  }  CTest::~CTest(void)  {  }  UINT ThreadProc(LPVOID lpParam)  {  CTest* test = (CTest*)lpParam;  HWND hWnd = test->m_hWnd;  return 0;  }  void CTest::ThreadMethod(HWND hWnd)  {  this->m_hWnd = hWnd;  AfxBeginThread(ThreadProc,this);  }

1.3 MFC主窗體方法調(diào)用

CTest test;

test.ThreadMethod(m_hWnd);

1.4 調(diào)試和說(shuō)明

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

二、解決辦法

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

test = new CTest();

test->ThreadMethod(m_hWnd);

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

到此,相信大家對(duì)“MFC多線(xiàn)程傳參問(wèn)題怎么解決”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

分享標(biāo)題:MFC多線(xiàn)程傳參問(wèn)題怎么解決
本文鏈接:http://bm7419.com/article36/ipdesg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站云服務(wù)器、軟件開(kāi)發(fā)、自適應(yīng)網(wǎng)站、定制開(kāi)發(fā)、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)