社区
C++ Builder
帖子详情
控制台程序如何保持循环,并能正确处理退出
bj_leo_2000
2007-01-09 02:12:46
int main(int argc, char* argv[])
{
printf("服务器启动\r\n");
//创建服务器循环等待
ghController = CreateEvent(NULL, FALSE, FALSE, NULL);
WaitForSingleObject(ghController,INFINITE);
//关闭服务器
printf("服务器关闭");
return 0;
}
这样到是可以保证主线程循环了,但无法处理退出。
...全文
494
7
打赏
收藏
控制台程序如何保持循环,并能正确处理退出
int main(int argc, char* argv[]) { printf("服务器启动\r\n"); //创建服务器循环等待 ghController = CreateEvent(NULL, FALSE, FALSE, NULL); WaitForSingleObject(ghController,INFINITE); //关闭服务器 printf("服务器关闭"); return 0; } 这样到是可以保证主线程循环了,但无法处理退出。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wenyongjie
2007-02-04
打赏
举报
回复
WaitForSingleObject(ghController,INFINITE);//一直等在这里了
在另一线程要运行SetEvent才能退出
bj_leo_2000
2007-01-11
打赏
举报
回复
to Waiting4you(毛毛)
这段代码是截获消息再抛给自己?
Waiting4you
2007-01-11
打赏
举报
回复
MSDN上说SetConsoleCtrlHandler就是处理Ctrl+C或直接关闭之类的事件的
PostThreadMessage (g_main_tid, WM_QUIT, 0, 0);是让消息循环退出
这段代码实际上什么也没做.
laowang2
2007-01-11
打赏
举报
回复
mark
Waiting4you
2007-01-10
打赏
举报
回复
老妖网上的:
DWORD g_main_tid = 0;
HHOOK g_kb_hook = 0;
bool CALLBACK con_handler (DWORD)
{
PostThreadMessage (g_main_tid, WM_QUIT, 0, 0);
// 本文转自 C++Builder 研究 - http://www.ccrun.com/article.asp?i=984&d=es23f6
return TRUE;
};
int main (void)
{
g_main_tid = GetCurrentThreadId ();
SetConsoleCtrlHandler ((PHANDLER_ROUTINE)&con_handler, TRUE);
MSG msg;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
};
return 0;
}
bj_leo_2000
2007-01-09
打赏
举报
回复
关键是点击关闭按钮或Ctrl+C退出时,没有执行WaitForSingleObject以后的代码就关闭了
kangji
2007-01-09
打赏
举报
回复
WaitForSingleObject之前,再创建一个线程,在线程中根据需要,SetEvent
qt
控制台
程序
无法正常
退出
并回收资源
许多人创建qt
控制台
程序
会遇到这种情况,关闭
控制台
的时候,自己写的子线程无法正常
退出
,无法进入自己创建的对象的析构函数,总之
程序
非正常
退出
. 为解决这种问题我想了几种思路,实践证明最后一种思路可以达到要求,没有耐心的可以直接看最后一项解决方案: 1.通过QTextStream监听用户输入, 当用户有输入则
退出
程序
. QCoreApplication a MyClass c; QString str; QTextStream in(stdin);//获取数据 in>>str; QTim
关于Qt
控制台
程序
创建一个Qt的
控制台
程序
,
C#
控制台
程序
获取用户输入数据验证 不合规返回重新提示输入
本文介绍了C#
控制台
程序
中实现高效输入验证的完整方案。通过通用验证框架GetValidInput方法,结合多种验证场景(整数范围、浮点数精度、日期格式、选项列表、密码掩码),并提供了输入增强功能(默认值、超时控制)和验证规则组合器。文章还总结了常见错误解决方案和最佳实践,如使用SecureString处理敏感信息、指定文化格式等。该方案可显著提升输入成功率80%,减少错误处理时间60%,降低代码维护成本50%,是构建健壮
控制台
应用的实用指南。
Java由小白到高手之零基础学Java——第三课 使用Eclipse开发Java
控制台
程序
这里写目录标题IDE简介什么是IDE常见的IDEEclipse开发工具的下载、配置Eclipse的下载Eclipse的配置:1. 配置默认工作路径2. 配置Eclipse 的JDK运行环境3. 检查并配置编辑器编码4. 配置文本编辑器中的字体大小。5. Eclipse界面认识6. 恢复Eclipse 默认视图7. 显示
控制台
透视图练习使用Eclipse开发Java
程序
创建Java Project创建Java Class写源码运行Java
程序
生成JavaDoc1. javaDoc的预览:2. 生成java
C#
控制台
实现计算器案例
计算器在日常生活中已经可以说是很普遍的了,今天我们用C#
控制台
实现一个计算器,主要拥有加、减、乘、除功能,下面我们先介绍一下主要会用到的方法: 主要方法简介:1. Console.WriteLine();2.Console.ReadLine();3.功能的逐步实现:4.结果演示: 1. Console.WriteLine(); Console.WriteLine():将指定的字符串写入输出流,也就是在
控制台
上显示你在括号里的内容; 举例: Console.WriteLine("天上的星星就好像你那闪闪发光的
C++ Builder
13,873
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章