2 jujiawu1024 jujiawu1024 于 2016.04.12 16:56 提问

MFC什么情况需要锁定线程里的变量?

MFC什么情况需要锁定线程里的变量?为什么锁定了变量计算结果还是不稳定?感觉和计算顺序有关系,谁能详细解释下?

1个回答

caozhy
caozhy   Ds   Rxr 2016.04.12 17:40
已采纳

什么叫结果不稳定,贴出你的程序和结果出来看下。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
如何在MFC线程中使用控件的成员变量和函数
<br />比如说,在ListBox里我添加了一个CString类型的成员变量m_str,我想用m_str.GetCount或m_str.GetText之类的方法,但这些在线程中就不能用了。<br /> <br />使用控件的成员变量和函数要用控件的对象或指针!应该定义一个CListBox类型的变量;<br />创建线程时要传递CXXXDlg 的指针过去就能调用CXXXDlg中定义的变量、控件了。<br />举例如下:<br /> <br />CWinThread * mThread = NULL; <br
子线程中如何调用对话框的变量和函数
原文出处:http://hi.baidu.com/cateyefish/item/42c8cce802b5913387d9de2b
MFC线程函数中访问成员变量的方法
用AfxBeginThread启动线程,线程的执行函数有两种定义的方法: 全局函数:UINT threadMessageBoxAdapter( LPVOID lParam ); 静态成员函数:static UINT threadMessageBoxAdapter( LPVOID lParam ); 若线程函数式全局函数,在线程中使用变量都必须是全局变量,不能使用对话框类成员变量,成员变量
MFC类内创建线程,使用内部变量方法
问题:MFC中创建一个新的线程,由于创建的线程需要说明成static,而static类型是不能直接使用类的内部变量的,解决办法是把this指针做为参数传递给线程,最好在线程内直接调用一个类内函数,然后在这个函数内就可以自由的使用所有变量,省掉所有的this-> 一、创建线程:传递this指针 HANDLE hThead=CreateThread(NULL,0,ThreadProcAcc
VC多线程中全局函数如何调用对话框类成员变量及成员函数
最近做VC时,需要用到多线程。在网上基于对话框的MFC例程中,网上所有例程均将线程函数定义为全局函数,而我在全局函数中需要用到对话框Dlg类成员函数,此时使用This指针。      1)先申请个全局void类型指针: void *pdlg; 2)在dlg InitDialog中,将该void指针初始化为this: pdlg= this; 3)在全局函数中加入以下程序
MFC学习(24)线程锁的概念函数EnterCriticalSection和LeaveCriticalSection的用法
线程锁的概念函数EnterCriticalSection和LeaveCriticalSection的用法 注:使用结构CRITICAL_SECTION 需加入头文件#include “afxmt.h” 定义一个全局的锁 CRITICAL_SECTION的实例 和一个静态全局变量 CRITICAL_SECTION cs;//可以理解为锁定一个资源static int n_
在MFC中类内部建立线程处理函数以便调用类的成员函数和变量
在用MFC做开发时,有时遇到些工作线程zhong
如何对全局变量加锁
各位大虾好:       采用多线程,公用一个全局变量,访问时,如何对全局变量加锁? 谢谢! 更多0分享到: 相关主题推荐: 全局变量 多线程 相关帖子推荐: 关于SOCKET多线程编程的问题! 求教大神gcc gnu 下man手册如何更新到最新版? winform程序,大量Label的Text修改,UI更新跟不上如何解决? C# FTP多个线程上传多
MFC工作线程中获得视图类指针问题
通常来讲,在MFC中,跨线程是不能传递CWnd对象指针的。因为在每个线程中都有一个自己的内部map,该map记录了HWND和与之对应的CWnd对象。当一个CWnd对象被创建时,它的HWND和CWnd对象指针就会被记录到该线程中的map,但其他的线程的map没有记录。    当跨线程传递CWnd指针时,调用CWnd的某些函数时,这些函数会进行有效性检查,也就是检查map,因为map中没有相应的记录
C#多线程访问定义的全局变量(lock线程锁)
手动和自动同时访问全局变量时,就有可能出现线程不同步的问题。以下主要利用lock线程锁来修改解决方案,使线程同步,详细代码如下。   using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using Sy