C#中的timer和线程是常用的多线程编程方式,可以实现定时任务、异步操作等。下面是完整攻略:
Timer
1. Timer的使用方法
Timer是一个C#中轻量级的计时器。使用时需要先创建一个Timer
对象,传入一个TimerCallback
委托作为回调函数,在指定时间间隔后,每次调用回调函数。常用的构造函数有:
public Timer(TimerCallback callback, object state, int dueTime, int period);
public Timer(TimerCallback callback, object state, TimeSpan dueTime, TimeSpan period);
其中,callback
参数是指定的回调函数,state
是传递给回调函数的对象,dueTime
是第一次调用回调函数的时间间隔,period
是后续的时间间隔。
2. 示例说明
下面是一个简单的例子,实现每隔1秒输出一次当前时间:
class Program
{
static void Main(string[] args)
{
Timer timer = new Timer(new TimerCallback(ShowTime), null, 0, 1000);
Console.ReadLine();
}
static void ShowTime(object state)
{
Console.WriteLine(DateTime.Now.ToLongTimeString());
}
}
其中,ShowTime
函数为回调函数,输出当前时间。timer
对象每隔1秒钟调用一次ShowTime
回调函数。
线程
1. 线程的使用方法
线程是C#中的对象,可以实现多线程编程。使用时需要创建一个Thread
对象,传入一个ThreadStart
委托作为线程的入口函数,在调用Start
方法启动线程。常用的构造函数有:
public Thread(ThreadStart start);
public Thread(ParameterizedThreadStart start);
public Thread(ThreadStart start, int maxStackSize);
2. 示例说明
下面是一个简单的例子,实现多线程输出当前时间:
class Program
{
static void Main(string[] args)
{
Thread thread1 = new Thread(new ThreadStart(ShowTime1));
Thread thread2 = new Thread(new ThreadStart(ShowTime2));
thread1.Start();
thread2.Start();
Console.ReadLine();
}
static void ShowTime1()
{
while (true)
{
Console.WriteLine(DateTime.Now.ToLongTimeString());
Thread.Sleep(1000);
}
}
static void ShowTime2()
{
while (true)
{
Console.WriteLine(DateTime.Now.ToLongDateString());
Thread.Sleep(1000);
}
}
}
以上代码创建了两个线程thread1
和thread2
,分别执行ShowTime1
和ShowTime2
函数。ShowTime1
函数和ShowTime2
函数无限循环输出当前时间和日期。由于是多线程执行,两个函数将会交替输出,实现了并发执行的效果。
以上是C#中timer和线程的使用方法和示例说明,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中的timer与线程使用 - Python技术站