社区
进程/线程/DLL
帖子详情
win32: 怎么用多线程在屏幕上画65536条线?
huangliluckystar
2009-03-11 02:46:34
如题,在线等。。。。。
...全文
89
7
打赏
收藏
win32: 怎么用多线程在屏幕上画65536条线?
如题,在线等。。。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huangliluckystar
2009-03-11
打赏
举报
回复
咋就没人了呢。。。。。。
huangliluckystar
2009-03-11
打赏
举报
回复
我有试过只创建一个线程,可是还是很慢。。。
void DrawGraph(HWND hDlg)
{
HDC hdc = ::GetDC(hDlg);
hThrd = CreateThread(NULL, 0, ThreadFunc, (LPVOID)1, 0, &threadId);
}
DWORD WINAPI ThreadFunc(LPVOID indexWidth)
{
HDC hdc = ::GetDC(g_hWndCommandBar);
for (int indexWidth = 0; indexWidth < 256; indexWidth++)
{
for (int indexHeigh = 0; indexHeigh < 256; indexHeigh++)
{
HBRUSH hbrush = ::CreateSolidBrush(RGB(g_nRed, g_nGreen, g_nBlue));
RECT rect = {g_nWidth, g_nHeigh, g_nWidth + 800.0/256 , g_nHeigh + 600.0 /256 };
::FillRect(hdc, &rect, hbrush);
g_nWidth = indexHeigh * 800.0/256.0;
g_nGreen = (g_nGreen + 1);
::DeleteObject(hbrush);
}
g_nHeigh = indexWidth * 600.0/256.0;
g_nGreen = (g_nGreen + 1);
}
return 0;
}
Chivalry
2009-03-11
打赏
举报
回复
不需要再循环里多次创建县城,创建一个,然后再处理
huangliluckystar
2009-03-11
打赏
举报
回复
void DrawGraph(HWND hDlg)
{
HDC hdc = ::GetDC(hDlg);
for (int indexWidth = 0; indexWidth < 256; indexWidth++)
{
::InitializeCriticalSection(&g_cs);
g_nHeigh = indexWidth * 600.0/256.0;
g_nGreen = (g_nGreen + 1);
hThrd[indexWidth] = CreateThread(NULL, 0, ThreadFunc, (LPVOID)indexWidth, 0, &threadId);
}
for (int indexWidth = 0; indexWidth < 256; indexWidth++)
{
::WaitForSingleObject(hThrd[indexWidth], INFINITE);
::CloseHandle (hThrd[indexWidth]);
}
}
一些初始化没copy下来
DWORD WINAPI ThreadFunc(LPVOID indexWidth)
{
HDC hdc = ::GetDC(g_hWndCommandBar);
//g_nHeigh = indexWidth * 600.0/256.0;
::EnterCriticalSection(&g_cs);
for (int indexHeigh = 0; indexHeigh < 256; indexHeigh++)
{
HBRUSH hbrush = ::CreateSolidBrush(RGB(g_nRed, g_nGreen, g_nBlue));
RECT rect = {g_nWidth, g_nHeigh, g_nWidth + 800.0/256 , g_nHeigh + 600.0 /256 };
::FillRect(hdc, &rect, hbrush);
g_nWidth = indexHeigh * 800.0/256.0;
g_nGreen = (g_nGreen + 1) % 255;
::DeleteObject(hbrush);
}
::LeaveCriticalSection(&g_cs);
return 0;
}
我在做LCD测试,画65536种颜色,可是不用线程会很慢,用线程又达不到效果。。。。不知错在哪
huangliluckystar
2009-03-11
打赏
举报
回复
void DrawGraph(HWND hDlg)
{
HDC hdc = ::GetDC(hDlg);
for (int indexWidth = 0; indexWidth < 256; indexWidth++)
{
::InitializeCriticalSection(&g_cs);
g_nHeigh = indexWidth * 600.0/256.0;
g_nGreen = (g_nGreen + 1);
hThrd[indexWidth] = CreateThread(NULL, 0, ThreadFunc, (LPVOID)indexWidth, 0, &threadId);
}
for (int indexWidth = 0; indexWidth < 256; indexWidth++)
{
::WaitForSingleObject(hThrd[indexWidth], INFINITE);
::CloseHandle (hThrd[indexWidth]);
}
}
一些初始化没copy下来
DWORD WINAPI ThreadFunc(LPVOID indexWidth)
{
HDC hdc = ::GetDC(g_hWndCommandBar);
//g_nHeigh = indexWidth * 600.0/256.0;
::EnterCriticalSection(&g_cs);
for (int indexHeigh = 0; indexHeigh < 256; indexHeigh++)
{
HBRUSH hbrush = ::CreateSolidBrush(RGB(g_nRed, g_nGreen, g_nBlue));
RECT rect = {g_nWidth, g_nHeigh, g_nWidth + 800.0/256 , g_nHeigh + 600.0 /256 };
::FillRect(hdc, &rect, hbrush);
g_nWidth = indexHeigh * 800.0/256.0;
g_nGreen = (g_nGreen + 1) % 255;
::DeleteObject(hbrush);
}
::LeaveCriticalSection(&g_cs);
return 0;
}
我在做LCD测试,画65536种颜色,可是不用线程会很慢,用线程又达不到效果。。。。不知错在哪
Chivalry
2009-03-11
打赏
举报
回复
你有什么问题?
vc++ 应用源码包_1
实现了自绘控件,云端控制主要在CnComm类
多线程
串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...
vc++ 应用源码包_6
实现了自绘控件,云端控制主要在CnComm类
多线程
串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...
Qt高级系列之8:Qt
多线程
线程池数据同步机制及文件下载器项目实战
1.带领您深入学习QT5/C++:Qt
多线程
线程池及数据同步机制 ,
多线程
文件下载器项目实战,继承自QThread,继承自QObject,QRunnable和QThreadPool,QtConcurrent,Qt
多线程
技术与数据加锁保护机制:QMutex,QSemaphore...
vc++ 应用源码包_2
实现了自绘控件,云端控制主要在CnComm类
多线程
串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...
vc++ 应用源码包_5
实现了自绘控件,云端控制主要在CnComm类
多线程
串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章