Visual studio之C# 新建线程与定时器的使用

背景

App需要开线程和定时器,本文对这两种的通用方法做个记录

正文

线程

  1. 添加命名空间
using System.Threading;
  1. 创建线程
//shutdownlazer()即是线程要执行的函数
Thread shutdownlazer_thread = new Thread(shutdownlazer);
  1. 开启线程
//shutdownlazer_thread即为第 2 步获取到的线程句柄
shutdownlazer_thread.Start();
  1. 关闭线程
    线程不需要自己关闭,当shutdownlazer()函数运行完退出了,线程也就自然关闭了。当然,若是关闭主窗口,则线程一定要关闭,可在主窗口关闭事件中调用函数关闭所有线程,
// 窗口关闭,关闭所有线程
private void Mainwin_FormClosing(object sender, FormClosingEventArgs e)
{
        System.Environment.Exit(0);
}

定时器

  1. 添加命名空间
using System.Timers;
  1. 实例化一个定时器
private static System.Timers.Timer RUtimer;
  1. 创建定时器并设定定时器参数
    // 创建一个100ms定时的定时器
    RUtimer = new System.Timers.Timer(100);    // 参数单位为ms
    // 定时时间到,处理函数为OnTimedUEvent(...)
    RUtimer.Elapsed += OnTimedUEvent;
    // 为true时,定时时间到会重新计时;为false则只定时一次
    RUtimer.AutoReset = true;
    // 使能定时器
    RUtimer.Enabled = true;
    // 开始计时
    RUtimer.Start();

此处需要注意的是,当让系统自动添加OnTimedUEvent(...)函数时,自动生成的函数如下,

void OnTimedUEvent(object sender, ElapsedEventArgs e)
{
        throw new NotImplementedException();
}

throw new NotImplementedException();此句是为了提醒我们来实现该定时器的代码,若不将该代码注释,则APP实际运行起来,定时器时间一到,就会在此处抛出异常。
4. 停止定时器

    RUtimer.stop();

至此记录完毕。

参考链接

记录时间:2017-5-9
记录地点:深圳WZ

posted @ 2017-05-09 10:12  Ch_Y_Q  阅读(6557)  评论(0编辑  收藏  举报