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

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

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

第一版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程序,你可以学到简单的线程管理和多线程任务处理。

目录
相关文章
|
2月前
|
Java 中间件 API
【C/C++ 线程 】深入浅出:理解 std::thread 的局限性
【C/C++ 线程 】深入浅出:理解 std::thread 的局限性
52 2
|
3月前
|
监控 安全 Java
多线程Thread(初阶一:认识线程)
多线程Thread(初阶一:认识线程)
40 0
|
5月前
|
人工智能 自然语言处理 Linux
进程(process) vs 线程(Thread)
本文主要介绍了进程和线程的基本概念、区别以及操作系统如何调度线程的方式。同时,还介绍了线程锁的核心原理和实现方式。在多线程编程中,理解进程和线程的概念以及线程锁的使用,对于保证程序的安全性和性能非常重要。
48 0
|
5月前
|
Java
多线程与并发,Java中介绍一下Thread类和Runnable接口的区别。
多线程与并发,Java中介绍一下Thread类和Runnable接口的区别。
33 1
|
2月前
|
存储 前端开发 算法
C++线程 并发编程:std::thread、std::sync与std::packaged_task深度解析(一)
C++线程 并发编程:std::thread、std::sync与std::packaged_task深度解析
58 0
|
2月前
|
存储 并行计算 Java
C++线程 并发编程:std::thread、std::sync与std::packaged_task深度解析(二)
C++线程 并发编程:std::thread、std::sync与std::packaged_task深度解析
73 0
|
2天前
|
安全 Java 调度
Java一分钟:多线程编程初步:Thread类与Runnable接口
【5月更文挑战第11天】本文介绍了Java中创建线程的两种方式:继承Thread类和实现Runnable接口,并讨论了多线程编程中的常见问题,如资源浪费、线程安全、死锁和优先级问题,提出了解决策略。示例展示了线程通信的生产者-消费者模型,强调理解和掌握线程操作对编写高效并发程序的重要性。
42 3
|
5天前
|
Java API 调度
【Java多线程】Thread类的基本用法
【Java多线程】Thread类的基本用法
6 0
|
6天前
|
算法 安全 调度
【C++入门到精通】 线程库 | thread类 C++11 [ C++入门 ]
【C++入门到精通】 线程库 | thread类 C++11 [ C++入门 ]
15 1
|
12天前
|
存储 机器学习/深度学习 C++
thread(线程)
**Lua中的协同程序(coroutine)类似线程,有独立栈和局部变量,但它们不能并行,只能单次运行,通过挂起切换。** \n\n**Userdata是自定义数据类型,允许存储C/C++的任意数据到Lua,常用于struct和指针。**