zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    团队冲刺第二十三天
    团队冲刺第二十二天
    团队冲刺第二十一天
    团队冲刺第二十天
    第十四周周总结
    团队冲刺第十九天
    团队冲刺第十八天
    团队冲刺第十七天
    团队冲刺第十六天
    keeprunning的使用说明
  • 原文地址:https://www.cnblogs.com/ChYQ/p/6828915.html
Copyright © 2011-2022 走看看