随笔分类 - MFC
摘要:一.创建线程函数 常用的创建线程的函数是CreateThread,还有MFC中的AfxBeginThread方法.另一种函数是_beginthreadex,其实它在内部调用了CreateThread,在调用之前_beginthreadex做了很多的工作,从而使得它比CreateThread更安全.所...
阅读全文
摘要:MFC中CString是一个方便的字符串操作的类, 然而很多函数需要传递字符指针, 这就需要进行CString和普通字符串的转换。1、CString用作C字符串常量。直接使用强制类型转换即可, 如:[cpp]view plaincopyCStringstrSports(_T("HockeyisBes...
阅读全文
摘要:本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!它是一个异步非阻塞Socket封装类,CAsyncSocket::Create()有一个参数指明了你想要处理哪些Socket事件,你关心的事件被指定以后,这个Socket默认就被用作了异步方式。CAsyncSocket的Crea...
阅读全文
摘要:socket编程用法---- 随着计算机网络化的深入,计算机网络编程在程序设计的过程中变得日益重要。由于C++语言对底层操作的优越性,许多文章都曾经介绍过用VC++进行Socket编程的方法。但由于都是直接利用动态连接库wsock32.dll进行操作,实现比较繁琐。其实,VC++的MFC类库中提供了...
阅读全文
摘要:对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手。许多概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等,初学者往往迷惑不清,只知其所以而不知起所以然。 异步方式指的是发送方不等接收方响应,便接着发下个数据包的通信方式;而同步指发...
阅读全文
摘要:陈大师的文章,核心就是利用__sync_bool_compare_and_swap来尝试无锁操作,在组里的svr状态统计的代码看里看到类似用法。可以有效的避免用锁,但是感觉有死循环的风险,所以一般__sync_bool_compare_and_swap只尝试有限次数比较合适。对__sync_bool...
阅读全文
摘要:在多核的硬件结构中,如果要充分发挥硬件的性能,必须采用多线程(或多进程)执行,以提高CPU的利用率。多核系统的编程模型和多个CPU的SMP系统的编程模型是一致的,都属于共享存储的编程模型;同时,多核环境中也可以使用的分布式编程模型。目前,多核并行编程方法可以分为以下四类:基于Raw Thread A...
阅读全文
摘要:状态模式定义:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。实用性:1、 一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。2、 一个操作中含有庞大的多分支条件语句,且这些分支依赖于该对象的状态。优点:1、 将与特定状态相关的行为局部化,并且将不同状态...
阅读全文
摘要:在程序中我们经常要使用定时刷新的功能,典型的应用是在信息管理系统中表单要跟着数据库中的数据变动。MFC提供了定时器来完成这个功能。=========================================================================在MFC中和定时器相关的...
阅读全文
摘要:[cpp]view plaincopystaticconstcharS_FILL[]="cycle_queue_fill_";staticconstcharS_EMPTY[]="cycle_queue_empty_";templateclassCycleQueueT{private:CycleQue...
阅读全文
摘要:获取按钮消息响应函数:voidCTest17GetTimeDlg::OnGetTime(){//TODO:在此添加控件通知处理程序代码//UpdateData(true);CTimem_time;m_time=CTime::GetCurrentTime();//获取当前时间日期m_strDate=m...
阅读全文
摘要:问题是在更新嵌入的清单文件时发生的,由于FAT32的原因而未能更新嵌入的清单文件,于是我们有如下两种解决方法:(1)不启用增量链接。在项目的“属性|配置属性|链接器|常规”中的“启用增量链接”选择“否”。此方法阻断了问题产生的源头,其每次生成exe文件时都直接嵌入清单文件,而不是默认的根据时戳而决定...
阅读全文
摘要:Christopher KohlhoffCopyright © 2003-2012 Christopher M. Kohlhoff以Boost1.0的软件授权进行发布(见附带的LICENSE_1_0.txt文件或从http://www.boost.org/LICENSE_1_0.txt)Boost....
阅读全文
摘要:初始化临界区(win)InitializeCriticalSection(RTL_CRITICAL_SECTION &rtl_critial_section) (linux)pthread_mutexattr_init(&(mutex)->attr);pthread_mutexattr_sett...
阅读全文
摘要:http://blog.csdn.net/iamnieo/article/details/29086212008-09-10 12:489202人阅读评论(3)收藏举报thread多线程listlibrary存储io目录(?)[+] C++多线程开发是一个复杂的事情,mfc下提供了CWinThre...
阅读全文
摘要:本文假设读者已经基本了解boost线程库的使用方法。boost是个开源工程,线程这一块也在不断完善之中,到现在这个阶段,boost::thread仅仅实现了一个完美的技术框架,但是读者在实际使用中会发现一些新的技术问题:1.boost::thread::join开启一个线程以后,怎样主动结束子线程?...
阅读全文
摘要://controlled_module_ex.hpp:controlled_module类的扩展//增强线程之间消息通讯//增加线程安全启动和安全关闭功能//增加定时器功能#pragmaonce#include#include#include"controlled_module.hpp"struct...
阅读全文
摘要:扩展threadtimermoduleexceptionsocket什么叫事务线程举个例子:我们写一个IM客户端的登录子线程,则该子线程会有这么几个事务要处理No.1 TCP Socket物理连接No.2 逻辑登录No.3 好友在线查询No.4 状态更新我们通常的代码写法是voidThreadLog...
阅读全文
摘要:modulethread扩展多线程破解通讯全文介绍了3个boost::thread的扩展类,希望能给大家书写多线程代码带来便捷。 thread -> controlled_module_ex ->controlled_module 那么我们具体在什么情况下选用不同的扩展类呢?1.如果你只想创建一个生...
阅读全文
摘要:一、创建一个线程创建线程 boost::thread myThread(threadFun); 需要注意的是:参数可以是函数对象或者函数指针。并且这个函数无参数,并返回void类型。 当一个thread执行完成时,这个子线程就会消失。注意这个线程对象不会消失,它仍然是一个还处在它的生存期的C++对象...
阅读全文