工作需要一个动态的窗口,有自动倒计时、后台发送数据、后台打印等功能。
第一版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程序,你可以学到简单的线程管理和多线程任务处理。
时间: 2024-10-29 04:17:50