ASP.NET 定時器回調方法的重入
更新時間:2017年02月20日 09:32:26 作者:brainmao
本文主要介紹了ASP.NET 定時器回調方法的重入的相關知識。具有很好的參考價值,下面跟著小編一起來看下吧
話不多說,請看代碼:
using System;
using System.Collections.Generic;
using System.Text;
namespace NET.MST.Sixth.Reenter
{
class Reenter
{
//用來造成線程同步問題的靜態(tài)成員
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("測試整數(shù):" + TestInt1.ToString());
//睡眠10秒,保證方法重入
System.Threading.Thread.Sleep(300);
TestInt1++;
Console.WriteLine("自增1后測試整數(shù):" + TestInt1.ToString());
}
}
/// <summary>
/// System.Threading.Timer的回調方法
/// </summary>
/// <param name="state"></param>
private static void ThreadingTimerHandler(object state)
{
lock (locko)
{
Console.WriteLine("測試整數(shù):" + TestInt2.ToString());
//睡眠10秒,保證方法重入
System.Threading.Thread.Sleep(300);
TestInt2++;
Console.WriteLine("自增1后測試整數(shù):" + TestInt2.ToString());
}
}
}
}
以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關文章
ASP.NET筆記之 ListView 與 DropDownList的使用
本篇文章小編為大家介紹,ASP.NET筆記之 ListView 與 DropDownList的使用。需要的朋友參考下2013-04-04
asp.net實現(xiàn)調用帶有輸出參數(shù)的存儲過程實例
這篇文章主要介紹了asp.net實現(xiàn)調用帶有輸出參數(shù)的存儲過程,結合實例形式分析了前端基于jQuery的ajax調用及后臺存儲過程調用的相關技巧,需要的朋友可以參考下2016-03-03
asp.net關于onpropertychange和oninput事件實現(xiàn)代碼
文本框,數(shù)據(jù)列表,當在文本框中輸入條件時需要實時刷新數(shù)據(jù)列表,而且需要滿足多瀏覽器(IE6.0/7.0/8.0,FireFox,Opera,google chrome,Safair)其功能類似google的智能匹配,我是用asp.net實現(xiàn)的。2009-11-11
asp.net(c#)Enterprise Library 3.0 下載
asp.net(c#)Enterprise Library 3.0 下載...2007-04-04
[Asp.Net Core]用Blazor Server Side實現(xiàn)圖片驗證碼
這篇文章主要介紹了如何用Blazor Server Side實現(xiàn)圖片驗證碼,文中講解非常詳細,代碼幫助大家更好理解和學習,感興趣的朋友可以了解下2020-07-07

