gpt4 book ai didi

c - 在 C 中,多线程,多个窗口调用一个窗口过程,每次调用都会使用新的局部变量还是我需要互斥体?

转载 作者:可可西里 更新时间:2023-11-01 11:36:27 25 4
gpt4 key购买 nike

我试图在标题中解释这一切:我有一个多线程 C 程序,它将有多个窗口调用一个窗口过程。

在窗口过程中完成了一些处理。我是否需要保护它,或者每次调用窗口过程都会在内存中分开?

我的直觉是我不需要互斥锁,因为它们都是局部变量,这是错误的吗?

LRESULT APIENTRY EditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) 
{
if (uMsg == WM_GETDLGCODE)
return DLGC_WANTALLKEYS;
else if(uMsg == WM_CHAR)
{
if( (int) wParam == 13)
{
char* strCurrentCommand;

unsigned long ulThisConversation = GetConversation(0, 0, hwnd, 0, 0);
...

我关心局部变量 strCurrentCommand 和 ulThisConversation。

最佳答案

函数的局部变量和参数进入堆栈。每个线程都有自己的堆栈,函数的每次调用都会在其运行的线程的堆栈上为其参数和局部变量获取一个空间。所以你很好。

关于c - 在 C 中,多线程,多个窗口调用一个窗口过程,每次调用都会使用新的局部变量还是我需要互斥体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10344432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com