用Thread替代Timer——简单的多线程处理(一)

工作需要一个动态的窗口,有自动倒计时、后台发送数据、后台打印等功能。

第一版Demo采用了Timer作为后台处理机制核心,代码量少,可读性高。但是实际效果差强人意,特别是多timer阻塞的情况很严重。

总结了一下实际需求和后台事件,决定用Thread代替原有的Timer。


顺便一提,C#的Thread加上语法糖真是甜,原来需要写一大段的代码现在只要一行:

Thread t = new Thread(() => void(parameter));
t.IsBackground = true;//设置线程为后台线程,不阻塞主线程。
t.Start();
如果以前写个有参数的线程……我都快忘记该怎么写了。

http://www.cnblogs.com/zyh-nhy/archive/2009/01/07/1371249.html

这个网址有写法总结,需要的各位可以去这里看看。


多线程中,操作界面为安全考虑需要用到委托,在这里再次赞一下现在的语法糖:

control.BeginInvoke(new Action(() =>
{
control.Text="text";
}));
我已经不想找以前怎么声明一套委托了。需要的各位请自己百度吧。


当年用2005+2.0写代码的日子浮现眼前,那会儿用委托写个多线程感觉好繁琐。

基本需求确认,需要的基本技术确认。

下一篇开始,将会从最简的方法开始写一篇基本WinForm+多线程的动态窗口。

如果你是初学者,建议你下载vs2015,可以和我一起开始从项目创建开始学习简单的多线程操作。


本文计划写完后你可以得到一个具有简单线程管理功能的WinForm程序,你可以学到简单的线程管理和多线程任务处理。

上一篇:JAVASCRIPT中的作用域和原型链,应该算是难点了,要好好多学学,练练


下一篇:关于企业用户邮箱向外投递邮件时提示"554.5.7.1 Access denied"