gpt4 book ai didi

Windows 中的 C++ 异步函数

转载 作者:行者123 更新时间:2023-11-28 03:33:55 26 4
gpt4 key购买 nike

我带着一个实验项目回来了,这个项目是这样开始的:我有一个包含 10000 个 POINT 类型元素的数组。它们应该是具有 x 和 y 坐标的像素,绘制在窗口上 (SetPixel())。我创建了一个创建 DC 的简单函数,从数组中获取每个点并将其绘制在屏幕上:

void draw_points() {
HDC hdc = GetDC(hWnd);
for (int i = 0; i < 10000; i++) {
SetPixel(hdc, points[i].x, points[i].y, RGB(0, 0, 0));
}
ReleaseDC(hWnd, hdc);
}

好吧,我把这个函数放在 WinMain() 函数的主循环中。有用。我可以看到在屏幕上绘制的点。问题是在显示点时我不能做任何其他事情,所以我发现我需要异步函数,就像在 Java 中一样。那是因为我希望能够在 draw_points() 函数运行时从数组中添加、删除、修改点。

我不需要它的任何结果,我只希望它在另一个线程中运行,而我可以用其他函数做任何我想做的事。所以,我的问题是:Windows API 为此提供了什么?通常的做法是什么?我需要一些外部图书馆吗?我只是不知道如何开始。我希望你明白我想要什么。谢谢!

最佳答案

你不应该从主循环中调用它。相反,您应该在获得 WM_PAINT 时调用它窗口消息循环中的事件。

关于Windows 中的 C++ 异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11687730/

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