首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

老版VC++线程池

为了解决这种问题,提出了线程池的概念,线程池中保存一定数量的 线程,当需要时,由线程池中的某一个线程来调用对应的处理函数。...从而实现任务的执行,这种方式相对于传统的VC线程来说,程序员不再需要关注线程的创建与销毁,以及线程的调度问题,这些统一由系统完成,只需要将精力集中到逻辑处理的回调函数中来,这样将程序员从繁杂的线程控制中解放出来...从设计的角度来说,这样的设计大大简化了应用程序考虑多线程设计时的难度,此时只需要考虑回调函数中的处理逻辑和被调用的条件即可,而不必考虑线程的创建销毁等等问题(一些设计还可以绕开繁琐的同步处理)。

1.4K30

VC++编写ActiveX控件

,里面涉及一个响应用PLC的采集信息的问题(PLC用串口和工控机相连接),然后思考如何用C#写串口通讯程序,结果师兄在一旁直接用VC++写了一个“*.ocx控件”,并在自己的电脑上进行了测试,完工后就把生成的...而COM组件技术很好地解决了这个问题。    ...如果你用过Visual Basic或者Delphi一类的可视化编程工具,那么对控件这个概念一定不会陌生,就是那些工具条上的小按钮,如EditBox,Grid,ImageBox,Timer等等。...使用了控件的编程非常容易。首先,在程序的设计阶段可以设置一些属性,如大小,位置,标题(caption)等等;在程序运行阶段,可以更改这些属性,还可以针对不同的事件,调用不同的方法来实现对该控件的控制。...控件的最大好处是可以重复使用,甚至可以在不同的编程语言之间使用,例如你可以在VB中嵌入用VC开发的控件。”

3.3K30

编程命名看编程质量问题

于是一个非常现实的问题就摆在了我们的面前:我们究竟应该如何为类,为方法等等命名? 以命名而论,有两个较大的陷阱:一个是名实不符,一个是词义混淆。 名实不符的常见情形又有两类。比如: 以偏概全。...变更无疑的会使名实不符这类问题加剧。比如:一个类原本负责输出测试结果,这时候OutputTestResult这样的命名可能是合适的。...在对命名这一问题的根源进行分析之后,我们来看看可能的应对方法。 命名问题事实上并不能只在命名这一环节进行解决,首先要有容易命名的对象,接下来才有容易命名的事实。...在努力改善设计之后,才需要面对纯粹的命名问题。从本质上来看,命名问题并不是一个编程问题,而是一个表达的问题。命名最终对读程序的人负责。...有些表达上的基本原则对于解决命名问题会有些帮助,比如: 尊重既成事实 无疑的每个人都是有创造性的,但在命名的时候发挥创造性则更可能是有害的。

79540

VC++ 崩溃处理以及打印调用堆栈

title: VC++ 崩溃处理以及打印调用堆栈 tags: [VC++, 结构化异常处理, 崩溃日志记录] date: 2018-08-28 20:59:54 categories: windows...高级编程 keywords: VC++, 结构化异常处理SEH, 崩溃日志记录 --- 我们在程序发布后总会面临崩溃的情况,这个时候一般很难重现或者很难定位到程序崩溃的位置,之前有方法在程序崩溃的时候记录...EXCEPTION_RECORD { DWORD ExceptionCode; //异常码 DWORD ExceptionFlags; //标志异常是否继续,标志异常处理完成后是否接着之前有问题的代码...还有一些需要注意的问题,我把它放到实现那块了,请小心的往下看^_^ 实现 实现部分的源码我放到了github上,地址 这个项目中主要分为两个类CBaseException,主要是对异常的一个简单的封装,...这个问题我还没有什么好的解决方案。 在获取到线程环境后就是简单的调用StackWalker以及那堆Sym开头的函数来获取各种信息了,这里就不再详细说明了。 至此这个功能已经实现的差不多了。

3.4K40
领券