ClientDC.TextOUtW应该显示的文字不能及时显示

xqlu2007 2015-01-23 02:12:08
我在VS2012的MFC应用程序里设计了一个测试程序,有一个线程序函数和一个菜单命令用于启动线程,还设计了两个鼠标事件(左键按下和右键按下),用于向线程发送事件信号,线程在启动时显示s1的文字,在用户单击左键后显示s2的文字,在用户单击右键后显示s3的文字.
用AfxMessageBox来显示完全正确, 但如果把三个 AfxMessageBox注释掉, 而去掉它上面相应的注释(即用TextOut来显示)就不正常, 不能按指定的方式显示出来, 请高手指点一下.
UINT MyEventThread(LPVOID pParam)
{
BOOL runThread=TRUE;
CString s1;s1="Thread begin running";
CString s2;s2="Thread Unlocked,thread continue run";
CString s3;s3="Thread end";
// CClientDC ClientDC(CWnd::FromHandle(*(HWND*)pParam));
// ClientDC.TextOutW(30,30,s1,s1.GetLength());
AfxMessageBox(s1);
eventObj.Lock();
// ClientDC.TextOutW(30,100,s2,s2.GetLength());
AfxMessageBox(s2);
while(runThread)
{
int returnCode=::WaitForSingleObject(eventEnd.m_hObject,0);
if(returnCode==WAIT_OBJECT_0)
runThread=FALSE;
}
// ClientDC.TextOutW(30,170,s3,s3.GetLength());
AfxMessageBox(s3);
return 0;
}


void CMFCApplication1View::OnEventthread()
{
// TODO: 在此添加命令处理程序代码
AfxBeginThread(MyEventThread,&m_hWnd);
}


void CMFCApplication1View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
eventObj.SetEvent();
CView::OnLButtonDown(nFlags, point);
}


void CMFCApplication1View::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
eventEnd.SetEvent();
CView::OnRButtonDown(nFlags, point);
}
...全文
286 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-01-23
  • 打赏
  • 举报
回复
Multiple Threads in the User Interface http://msdn.microsoft.com/zh-cn/library/ms810439.aspx
内容概要:本文聚焦于多区域综合能源系统中热网的建模与系统运行优化问题,基于Matlab平台实现了完整热网数学模型的构建与仿真分析。研究充分考虑热力网络的物理特性、能量传输损耗、多能互补机制以及区域间的耦合约束,建立了涵盖能源生产、传输与消费全过程的协同优化模型。通过集成灰狼优化(GWO)、改进灰狼优化(IGWO)、金豺优化(GJO)等多种智能优化算法,对系统运行成本、能源利用效率及碳排放等多重目标进行联合优化求解,有效提升了综合能源系统的经济性、可靠性和可持续性水平。文中提供的完整Matlab代码支持EI级别论文的复现,具有较强的科研参考价值和工程应用潜力。; 适合人群:面向具备能源系统、电力系统或热力工程等相关专业背景,熟悉Matlab编程环境,从事综合能源系统建模、热网优化调度、多能协同控制等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于多区域综合能源系统中热力网络的建模与潮流仿真分析;②支撑系统级运行优化研究,包括经济调度、低碳运行、多能协同与可靠性提升;③为智能优化算法在复杂能源系统中的应用提供可复现的案例支持与代码基础,助力高水平学术论文撰写与算法验证。; 阅读建议:建议结合Matlab代码逐模块解析热网建模流程与优化求解逻辑,重点关注热网节点方程、耦合元件建模、目标函数构造及约束条件处理方法,推荐配合实际系统参数进行调试与拓展实验,以深入掌握综合能源系统协同优化的核心机制。
内容概要:本文系统研究了基于六种智能优化算法(粒子群PSO、灰狼GWO、鲸鱼WOA、哈里斯鹰HHO、蜣螂DBO、麻雀SSA)的无人机三维路径规划方法,并通过Matlab代码实现了仿真验证。研究构建了一个综合考虑路径长度、飞行高度、环境威胁和转弯角度等因素的多成本目标函数,旨在评估各类算法在复杂三维空间中寻找最优飞行路径的能力。通过对不同算法在收敛速度、寻优精度、路径安全性和稳定性等方面的对比分析,揭示了各算法在处理无人机路径规划这一多目标优化问题时的性能差异与适用边界,为实际工程应用中的算法选择与改进提供了科学依据和技术支撑。; 适合人群:具备一定Matlab编程基础,从事无人机路径规划、智能优化算法研究及相关领域的科研人员、研究生及工程技术开发者。; 使用场景及目标:①应用于复杂地形或城市环境下的无人机自主导航与避障路径规划;②用于系统性比较元启发式优化算法在三维空间路径规划任务中的表现,辅助科研与工程实践中算法的选型、优化与集成; 阅读建议:建议结合提供的Matlab代码进行仿真实验,通过调整环境参数与算法超参数,深入观察各算法的迭代过程与路径生成效果,从而全面理解其搜索机制与性能特征。
内容概要:本文围绕密集型复杂城市环境下的无人机三维路径规划问题,提出一种基于Q-learning强化学习算法的解决方案。通过构建包含建筑障碍物、飞行高度限制、路径长度及安全威胁等多因素的三维空间模型,设计合理的状态空间、动作空间与奖励函数,利用Q-learning算法实现无人机从起始点到目标点的自主避障路径规划。研究重点在于强化学习在复杂动态环境中的应用,采用Matlab进行仿真实验,验证了该方法在生成安全、高效飞行路径方面的有效性与可行性,为无人机在城市空中交通、应急救援与物流配送等场景中的自主导航提供了理论支持和技术路径。; 适合人群:具备一定人工智能、强化学习及路径规划基础知识,从事无人机导航、智能控制、自动化或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于城市环境中的无人机自主飞行系统开发;②为强化学习在三维路径规划中的实际落地提供可复现的Matlab代码实现;③用于对比分析Q-learning与其他智能优化算法在复杂空间中的路径规划性能差异;④支撑智能交通、智慧城市建设中的低空飞行器决策系统研究。; 阅读建议:建议读者结合提供的Matlab代码深入理解算法实现细节,重点关注状态表示设计与奖励机制的构建逻辑,并可通过调整城市环境参数、障碍物密度或引入动态威胁源等方式,进一步测试算法的鲁棒性、收敛性与泛化能力。

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧