我可以在开关(消息)语句的同时运行一段时间吗?(C )
Can I run a while() at the same time as a switch(messages) statement? (c++)
我有一个简单的程序。看起来这样:
bool i = fasle;
int WINAPI WinMain(HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nCmdShow)
{
/*COMMENT TO REPRESENT WNDCLASSEX STUFF*/
return messages.wParam;
}
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_CREATE:
CreateWindow(
TEXT("button"),TEXT("Activate"),
WS_VISIBLE | WS_CHILD,
10,
100,
100,
50,
hwnd,
(HMENU) 1,
NULL, NULL
);
CreateWindow(
TEXT("button"),TEXT("Deactivate"),
WS_VISIBLE | WS_CHILD,
10,
250,
100,
50,
hwnd,
(HMENU) 2,
NULL, NULL
);
break;
case WM_COMMAND:
if(LOWORD(wParam) == 1){
i = true;
}
if(LOWORD(wParam) == 2){
i = false;
}
break;
case WM_DESTROY:
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
我希望有一定的声明无论如何都可以运行。循环看起来像这样:
while(1)
{
if(i == true)
{
/*DO STUFF*/
}
}
在哪里可以将循环添加到我的代码中以使其永远运行?
在哪里可以将循环添加到我的代码中以使其永远运行?
在其他线程中。
对不起,但这是Guis生活的事实。WIN32 GUI编程模型是事件驱动的,在事件驱动的系统中,您无法在GUI线程上进行长期运行,因为那时GUI线程将永远没有机会处理任何消息。
因此,您必须在其他线程中移动无尽的跑步环。
但是,这很可能是一个X-y问题。(http://xyproblem.info/(
相关文章:
- 在做一段时间内检查字符的无限循环
- ExtTextOut 文本的持续闪烁,在一段时间后,文本将恢复为默认字体
- 对于等待以 std::future wait() 返回的函数的 CPU 使用率或检查标志在循环中休眠一段时间哪个更好?
- ::grpc::ServerReaderWriter 对象在另一个线程中一段时间后无法调用
- 一段时间后 CPU 使用率高
- 有没有办法在一段时间后将流程从流出中分离出来
- 在一段时间内更改标签文本
- 布尔函数在一段时间内不起作用
- 解决PNP在一段时间后返回坏的rvec和tvec
- 相机的旋转方向在一段时间后反转
- boost::asio::d eadline_timer 1ms 滞后一段时间
- SDL_Mixer再次播放时,从随机位置开始一段时间,然后从头开始
- 您可以在一段时间内迭代向量
- 我可以在开关(消息)语句的同时运行一段时间吗?(C )
- 程序编译和运行,但一段时间后,它停止使用Typedef关键字在CPP上工作
- 允许每x ms运行一段时间
- LoadBitmap在程序运行一段时间后返回NULL
- 在Poco c++库中发送调用在运行一段时间后在Windows上不返回
- 由于ECHILD错误,C++中的system()函数在一段时间内运行良好,但在返回-1时失败.为什么?
- 性能问题与c++(使用vc++ 2010):在运行时,我的程序似乎随机等待一段时间