vc子线程修改主线程变量,多线程修改static变量

http://www.itjxue.com  2023-01-09 02:29  来源:未知  点击次数: 

C语言子线程中如何使用主线程的变量

要么 使用全局变量.

要么 在主线程中,通过全局变量,或者消息, 或者建立子线程传参, 总之凡是可行的交互方式都可以, 把主线程中变量的地址传给子线程.

即使用主线程写一个文件, 子线程去读这个文件, 这样的方法都是可以的.

vc多线程修改同一个全局变量,如何加锁

CRITICAL_SECTION cs; // 全局变量 ::InitializeCriticalSection( cs); // 初始化锁 ::EnterCriticalSection( cs); 获得锁 ...... ::LeaveCriticalSection( cs); // 释放锁 ...... ::DeleteCriticalSection( cs); // 删除锁------解决方案--------------------------------------------------------探讨引用:C/C++ codeCRITICAL_SECTION cs; // 全局变量

主线程与子线程同步一个变量,主线程改变了变量值,子线程收不到

为何不设置两个断点来调试呢,一个在SendMessage后面

::EnterCriticalSection(m_css);

一个在你的主线程等待那里

-----------华丽的分割线---------------

实际上你根本不用那样做,你可以设置一个event,在子线程完成时激活这个事件,主线程等待这个事件就好了

困惑:子线程如何使用主线程的变量

定义全局变量是可以的,为空是因为你还没有给这个变量赋值就使用他了。解决方法在子线程获取数组并把值赋给全局变量,然后发送消息Message通知handler,最后在handler中接收通知并显示使用这个全局变量。

(责任编辑:IT教学网)

更多