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

  • 相关阅读:
    FZU 2112 并查集、欧拉通路
    HDU 5686 斐波那契数列、Java求大数
    Codeforces 675C Money Transfers 思维题
    HDU 5687 字典树插入查找删除
    HDU 1532 最大流模板题
    HDU 5384 字典树、AC自动机
    山科第三届校赛总结
    HDU 2222 AC自动机模板题
    HDU 3911 线段树区间合并、异或取反操作
    CodeForces 615B Longtail Hedgehog
  • 原文地址:https://www.cnblogs.com/ChYQ/p/6828915.html
Copyright © 2011-2022 走看看