91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MFC多線程傳參問題怎么解決

發布時間:2022-01-12 22:27:19 來源:億速云 閱讀:171 作者:iii 欄目:編程語言

本篇內容主要講解“MFC多線程傳參問題怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MFC多線程傳參問題怎么解決”吧!

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

一、問題代碼

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主窗體方法調用

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在頭文件里面聲明即可,再次斷點發現數據正常。

到此,相信大家對“MFC多線程傳參問題怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

mfc
AI

利辛县| 宁海县| 堆龙德庆县| 灌云县| 青田县| 乌兰县| 大足县| 洮南市| 榆中县| 永清县| 江陵县| 五峰| 新河县| 旬阳县| 班戈县| 嘉祥县| 昭苏县| 古蔺县| 图们市| 朝阳区| 江北区| 广德县| 木里| 广饶县| 石家庄市| 合阳县| 漯河市| 沧州市| 孝昌县| 玉溪市| 曲水县| 涡阳县| 北碚区| 宽甸| 和平区| 扎鲁特旗| 济源市| 弥渡县| 惠安县| 隆德县| 宁夏|