多线程 C#定时器

1.多线程基本概念

进程:一个程序运行时所占用的所有资源。一个进程可由多个线程组成。

线程:一个进程中的执行单元,可以共享进程中的资源。

多线程:一个程序有多个线程执行执行各自的任务。

多线程的优点:CPU利用率速率提升了,当一个线程阻塞时,程序不必等他就绪,可以先执行其他的线程。

多线程的缺点:线程也需要分配空间,线程越多占用内存也就越多,线程会竞争程序的资源,线程多的时候难以控制。

2.C#计时器

原理:通过设置一个时间间隔,循环地执行一个方法(使用委托来实现)

使用System.Threading.Timer中的Timer类 具体代码如下:

        static void Main(string[] args)
        {
            Timer tmr = new Timer(Tick, "tick...", 1000, 1);
            Console.ReadLine();
            tmr.Dispose();
        }
        static void Tick(object data)
        {
            DateTime date = DateTime.Now;
            Console.WriteLine(date);
        }

Timer

上面代码中第一个参数是指通过委托来绑定执行的函数,第二个参数表示执行函数需要的参数,第三个参数是指经过多少毫秒执行第一次,第四个参数代表执行函数的时间间隔

这里每需要执行一次该函数就要创建一个新的线程来执行。

时间: 2024-10-13 04:01:14

多线程 C#定时器的相关文章

JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题

JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序员杜鹏程的博客:http://blog.csdn.net/m366917 我们来继续学习多线程 Lock锁的使用 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock Lock void lock():获取锁 v

多线程和定时器之间的关系

总结: 1.并行和串行说 多线程更像并行 定时器实际是串行 2.缺点 多线程因为竞抢资源,会造线程锁死 定时器会造成UI堵塞,因为并非真正的多线程 3.多线程是"同时"执行的多任务 定时器更像是本线程插入的任务 1 软件定时器 很多同学在工程中喜欢使用软件定时器,因为其使用简单,仅需设置一个时长和其OnTime事件即可使用.确实,软件定时器在某些持续性不强的重复性工作中效率还是不错的,但是也有着很大的缺点. 缺点1,速度:软件定时器的精度比较低,这是由Windows不实时的特性所决定的

关于线程和多线程和定时器

//线程 public  class MyProccess        {            public  void Start()            {                ThreadStart start=new ThreadStart(ThreadAction);                Thread th=new Thread(start);                th.IsBackground = true;                th.S

多线程设置定时器--时间设置规则

org.springframework.scheduling.quartz.CronTriggerBean允许你更精确地控制任务的运行时间,只需要设置其cronExpression属性. 一个cronExpression表达式有至少6个(也可能是7个)由空格分隔的时间元素.从左至右,这些元素的定义如下: 1.秒(0–59) 2.分钟(0–59) 3.小时(0–23) 4.月份中的日期(1–31) 5.月份(1–12或JAN–DEC) 6.星期中的日期(1–7或SUN–SAT) 7.年份(1970

java多线程实现定时器任务

volatile是一个弱同步机制关键字,只能实现同步机制中的可见功能,不能实现互斥访问.用在变量的声明上时,表示多个线程获取此变量时,都是最新的数据(变量会自动更新最新数据).synchronized 是一个内置锁,也就是java内部加锁机制.用在方法上时,每个线程进入的时候,它会获得方法所在的对象的锁,离开方法后释放对象锁. 自定义定时任务 任务管理类 package com.effectJava.Chapter3; import java.util.concurrent.TimeUnit;

解决iOS程序UI主线程和定时器相互阻塞的问题

我的问题是这样,我的页面上有一个UIScrollView和一个定时器用来记录当前考试模式下的剩余时间,问题出现了:当我滑动滚动试图时,定时器的方法便不在运行(即被UI主线程阻塞).google一下找到了解决办法:将定时器放在非主线程中执行将更新UI的操作放到主线程,这样UI主线程和定时器就能互不干扰的相互工作了. 在另一个项目中,还解决了一个问题:手机验证码,获取按钮,点击获取后,会开始倒计时一段时间,按钮不可点,按钮上的文字不断变化. 获取验证码 120秒后重新获取 119秒后重新获取 以下是

教你成为全栈工程师(Full Stack Developer) 一-各显神通总结八大类编程语言的区别

为了能在最快的时间里理解更多语言的相同点和不同点,我用大家最熟悉的Hello World来展示一下各个语言的奥妙 请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址 注意:整个教程是基于linux系统的(为了方便讲解,我选择用vmware虚拟机装了CentOS 7来演示,其他linux均可),包括编译器.依赖库安装过程.命令行,如果是使用windows或mac系统稍有差别,CentOS 7安装方法百度一下你就知道 万物之源的C语言 简述:C语言是编译执行的语言,l

OpenCV获取摄像头视频并在MFC的Picture控件上显示

分为两步:OpenCV获取摄像头数据+图像在Picture上显示 第一步:OpenCV获取摄像头数据 参考:http://www.cnblogs.com/epirus/archive/2012/06/04/2535190.html http://blog.sina.com.cn/s/blog_6dbe9bdb0100nii7.html http://blog.csdn.net/augusdi/article/details/8762961 #include "stdafx.h" #in

Python爬取CSDN博客文章

之前解析出问题,刚刚看到,这次仔细审查了 0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.windows下环境搭建 3.java里连接redis数据库 4.关于认证 5.redis高级功能总结1.基础底层数据结构1.1.简单动态字符串SDS定义: ...47分钟前1 url :http://blog.csdn.net/youyou1543724847/