110,552
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Timers;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MultDeskRef(1000, 3);
}
public static void MultDeskRef(int timeInterval, int Count)
{
System.Timers.Timer theTimer = new System.Timers.Timer();//定时器
theTimer.Interval = timeInterval;
theTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);//到达时间的时候执行事件;
theTimer.AutoReset = false;//设置是执行一次(false)还是一直执行(true);
theTimer.Enabled = true;
if (Num <= Count)
{ theTimer.Enabled = true; }//是否执行System.Timers.Timer.Elapsed事件;
else
{ theTimer.Enabled = false; }//是否执行System.Timers.Timer.Elapsed事件;
}
public static int Num;
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
Num += 1;
Console.WriteLine("这是第{0}次运行",Num) ;
}
}
}
Console.WriteLine("这是第{0}次运行", Interlocked.Increment(ref _count));
谢谢你打了这么多,我也学到了很多(虽然还没完全懂)。
Console.WriteLine($"这是第{Interlocked.Increment(ref _count)}次运行")
Console.WriteLine("这是第{0}次运行",Num) ;
的括号不是英文括号;
static void Main(string[] args)
{
TimerS timerS = new TimerS();
timerS.Elapsed += TimerS_Elapsed;
timerS.Run(500, 10);
Console.ReadLine();
}
private static void TimerS_Elapsed(object sender, ElapsedEventArgs e)
{
Console.WriteLine("执行timer操作");
}
public class TimerS : System.Timers.Timer
{
/// <summary>
/// 不允许外部更改状态
/// </summary>
public new bool Enabled
{
get
{
return base.Enabled;
}
private set
{
base.Enabled = value;
}
}
private int _count;
/// <summary>
/// 执行计数
/// </summary>
public int Count
{
get { return _count; }
}
private int _num;
/// <summary>
/// 还需要执行的次数
/// </summary>
public int Num
{
get { return _num; }
private set { _num = value; }
}
public TimerS()
{
Elapsed += TimerElapsed;
}
public void Run(int interval, int num)
{
if (interval <= 0 || num <= 0)
{
throw new ArgumentException();
}
Interval = interval;
Num = num;
Enabled = true;
}
private void TimerElapsed(object sender, ElapsedEventArgs e)
{
Console.WriteLine($"这是第{Interlocked.Increment(ref _count)}次运行");
if (Interlocked.Decrement(ref _num) <= 0)
{
Enabled = false;
Console.WriteLine("停止Timer");
}
}
protected override void Dispose(bool disposing)
{
Elapsed -= TimerElapsed;
base.Dispose(disposing);
}
}
using System;
using System.Timers;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MultDeskRef(1000, 3);
}
public static void MultDeskRef(int timeInterval, int Count)
{
System.Timers.Timer theTimer = new System.Timers.Timer();//定时器
theTimer.Interval = timeInterval;
theTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);//到达时间的时候执行事件;
theTimer.AutoReset = false;//设置是执行一次(false)还是一直执行(true);
theTimer.Enabled = true;
if (Num <= Count)
{ theTimer.Enabled = true; }//是否执行System.Timers.Timer.Elapsed事件;
else
{ theTimer.Enabled = false; }//是否执行System.Timers.Timer.Elapsed事件;
}
public static int Num;
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
Num += 1;
Console.WriteLine("这是第{0}次运行",Num) ;
}
}
}