
捉虫子
pc0de
面向工资编程
展开
-
C#中的线程之线程同步
写在前面 之前写过一篇博客,C#中的线程之Abort陷阱,最近比较忙,没时间写后面的内容,恰好今天偶然看到一个技术问答。线程抢占执行怎么使10-20连续输出 。回答该问题顺便写了几个例子,于是就有了这篇博客。 问题描述 主要解决的问题是让两个线程代码能按照一定的顺序执行。题主抛出的代码是这样的: // 需要让打印出来的结果顺序输出 static void Main(string[] args)原创 2016-11-13 15:17:31 · 572 阅读 · 0 评论 -
C#中的线程之Abort陷阱
C#中的线程陷阱之Abort1.简介 C#中通常使用线程类Thread来进行线程的创建与调度,博主在本文中将分享多年C#开发中遇到的Thread使用陷阱。 Thread调度其实官方文档已经说明很详细了。本文只简单说明,不做深入探讨。 如下代码展示了一个线程的创建与启动 static void Main(string[] args) {原创 2016-10-23 21:28:28 · 22415 阅读 · 2 评论 -
C++删除空指针的一个坑
最近使用了项目公共库中看起来很稳定的一个消息队列类(前同事留下的),起初用得还挺好。后来程序中突然出现了内存暴涨的情况,最后定位下来是这个类的问题。随后花了一些时间定位出现问题的代码,其实在DEBUG时都没有找到问题代码,真正找到问题是凭着感觉在一堆代码里揪出了这样一句话:delete (void*)lParam; 灵感突现,这句应该有问题。当时在办公室,不能上网且手里又没有现成的参考资料,于是随原创 2016-12-03 07:24:52 · 1948 阅读 · 0 评论 -
C#互操作之GC回收陷阱
起因 其实这得从好多年前的一个BUG说起. 那一年, 刚刚接触C++不久, 遇到的一个空引用之类的错误,反复调试却没有发现C++有任何的问题 单独跑C#测试也没有任何问题, 屏蔽C++的回调才找到出问题的地方。 示例代码 为了复现那个BUG的样子,我甩个DEMO出来。 C++的代码是下面这样的,公布SetCallback函数,由C#设置回调地址,然后在C++非托管线程中不断调用该...原创 2017-03-23 21:12:03 · 1200 阅读 · 0 评论