话不多说,请看代码:
using System;
using System.Collections.Generic;
using System.Text;
namespace NET.MST.Sixth.Reenter
{
class Reenter
{
//用来造成线程同步问题的静态成员
private static int TestInt1=0;
private static int TestInt2 = 0;
private static object locko = new object();
static void Main(string[] args)
{
Console.WriteLine("System.Timers.Timer 回调方法重入测试:");
TimersTimerReenter();
//这里确保已经开始的回调方法有机会结束
System.Threading.Thread.Sleep(2 * 1000);
Console.WriteLine("System.Threading.Timer 回调方法重入测试:");
ThreadingTimerReenter();
Console.Read();
}
/// <summary>
/// 展示System.Timers.Timer的回调方法重入
/// </summary>
static void TimersTimerReenter()
{
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 100; //100毫秒
timer.Elapsed += TimersTimerHandler;
timer.Start();
System.Threading.Thread.Sleep(2 * 1000); //运行2秒
timer.Stop();
}
/// <summary>
/// 展示System.Threading.Timer的回调方法重入
/// </summary>
static void ThreadingTimerReenter()
{
//100毫秒
using (System.Threading.Timer timer = new System.Threading.Timer
(new System.Threading.TimerCallback(ThreadingTimerHandler), null, 0, 100))
{
System.Threading.Thread.Sleep(2 * 1000); //运行2秒
}
}
/// <summary>
/// System.Timers.Timer的回调方法
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
private static void TimersTimerHandler(object sender,EventArgs args)
{
lock (locko)
{
Console.WriteLine("测试整数:" + TestInt1.ToString());
//睡眠10秒,保证方法重入
System.Threading.Thread.Sleep(300);
TestInt1++;
Console.WriteLine("自增1后测试整数:" + TestInt1.ToString());
}
}
/// <summary>
/// System.Threading.Timer的回调方法
/// </summary>
/// <param name="state"></param>
private static void ThreadingTimerHandler(object state)
{
lock (locko)
{
Console.WriteLine("测试整数:" + TestInt2.ToString());
//睡眠10秒,保证方法重入
System.Threading.Thread.Sleep(300);
TestInt2++;
Console.WriteLine("自增1后测试整数:" + TestInt2.ToString());
}
}
}
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# asp.net
# 定时器
# 定时器回调
# .NET中实现高精度定时器的思路
# .NET中6种定时器的用法与特点详解
# .NET Framework中定时器timer的单线程与多线程使用讲解
# asp.net中Timer无刷新定时器的实现方法
# .NET中的6种定时器的基本用法和特点
# 回调
# 有机会
# 已经开始
# 多说
# object
# locko
# private
# static
# int
# Console
# WriteLine
# Timers
# args
# void
# Main
# string
# csharp
# System
# Collections
# brush
相关文章:
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
如何通过云梦建站系统实现SEO快速优化?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
Python文件管理规范_工程实践说明【指导】
建站168自助建站系统:快速模板定制与SEO优化指南
,怎么在广州志愿者网站注册?
定制建站哪家更专业可靠?推荐榜单揭晓
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
制作旅游网站html,怎样注册旅游网站?
建站VPS选购需注意哪些关键参数?
常州企业网站制作公司,全国继续教育网怎么登录?
建站之星logo尺寸如何设置最合适?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
建站主机空间推荐 高性价比配置与快速部署方案解析
建站之星如何通过成品分离优化网站效率?
如何在西部数码注册域名并快速搭建网站?
如何用低价快速搭建高质量网站?
如何通过远程VPS快速搭建个人网站?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
网站制作需要会哪些技术,建立一个网站要花费多少?
浅谈Javascript中的Label语句
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
如何在香港服务器上快速搭建免备案网站?
如何基于云服务器快速搭建网站及云盘系统?
设计网站制作公司有哪些,制作网页教程?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
建站主机是否属于云主机类型?
定制建站价位费用解析与套餐推荐全攻略
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
高防服务器:AI智能防御DDoS攻击与数据安全保障
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
建站主机功能解析:服务器选择与快速搭建指南
大学网站设计制作软件有哪些,如何将网站制作成自己app?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
IOS倒计时设置UIButton标题title的抖动问题
建站主机选购指南与交易推荐:核心配置解析
建站之星后台密码遗忘如何找回?
营销式网站制作方案,销售哪个网站招聘效果最好?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
C#如何序列化对象为XML XmlSerializer用法
C++如何编写函数模板?(泛型编程入门)
股票网站制作软件,网上股票怎么开户?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
MySQL查询结果复制到新表的方法(更新、插入)
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
历史网站制作软件,华为如何找回被删除的网站?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
*请认真填写需求信息,我们会在24小时内与您取得联系。