背景

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

Visual studio之C# 新建线程与定时器的使用的更多相关文章

  1. 修改VISUAL STUDIO EXPRESS 2012新建C++文件编码

    本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供markdown格式源码,欢迎使 ...

  2. crossplatform---Nodejs in Visual Studio Code 06.新建Module

    1.开始 Node.js:https://nodejs.org 2.Moudle js编程中,由于大家可以直接在全局作用域中编写代码,使开发人员可以很容易的新建一个全局变量或这全局模块,这些全局变量或 ...

  3. Nodejs in Visual Studio Code 06.新建Module

    1.开始 Node.js:https://nodejs.org 2.Moudle js编程中,由于大家可以直接在全局作用域中编写代码,使开发人员可以很容易的新建一个全局变量或这全局模块,这些全局变量或 ...

  4. Visual studio之C#跨线程调用UI控件

    背景 当前串口通讯项目,多个线程需要同时利用richTextBoxMsg控件打印信息,直接调用会造成线程不安全,严重的时候会直接导致UI线程挂掉,因此本篇就跨线程调用UI控件做个记录. 正文 定义控件 ...

  5. Visual Studio 2015 新建MVC项目 Package Manager Console不能使用 (HRESULT: 0x80131500)

    Visual studio 2015 突然新建不了MVC项目,报出错误: HRESULT: 0x80131500 在折腾了很长时间,最后在Github上看到这样一个贴 地址:https://githu ...

  6. 带你玩转Visual Studio

    带你玩转Visual Studio 带你新建一个工程 工程目录下各文件的含义 解决方案与工程 在这之前先了解一个概念:解决方案与工程. 解决方案(Solution):一个大型项目的整体的工作环境: 工 ...

  7. 带你玩转Visual Studio——带你了解VC++各种类型的工程

    原文地址:http://blog.csdn.net/luoweifu/article/details/48816605 上一篇文章带你玩转Visual Studio——带你新建一个工程一文中提到新建一 ...

  8. Apworks框架实战(四):使用Visual Studio开发面向经典分层架构的应用程序:从EasyMemo案例开始

    时隔一年,继续我们的Apworks框架之旅.在接下来的文章中,我将逐渐向大家介绍如何在Visual Studio中结合Apworks框架,使用ASP.NET Web API和MVC来开发面向经典分层架 ...

  9. 用C#语言在Visual Studio 2010里开发一个自定义的PowerShell Cmdlet

    1. 打开Visual Studio 2010 2. 新建一个基于Class Library的项目 3. 给项目起个名字然后OK 4. 为项目添加下列Reference System.Manageme ...

随机推荐

  1. 32、Flask实战第32天:优化json数据的返回

    接着上节,我们通过jsonify返回json数据非常方便 ... return jsonify({"code": 400, "message": message ...

  2. AGC 020 B - Ice Rink Game

    题面在这里! 倒着维护可以取的范围区间,判一下可不可能无解即可. #include<bits/stdc++.h> #define ll long long using namespace ...

  3. 【点分治】【FFT】Gym - 101234D - Forest Game

    存个求树上每种长度(长度定义为路径上点数)的路径条数的模板:num数组中除了长度为1的以外,都算了2次. 不造为啥FFT数组要开八倍. #include<cstdio> #include& ...

  4. 【动态规划】【斜率优化】CDOJ1689 分序列

    斜率优化裸题,模型可以看http://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html #include<cstdio> # ...

  5. 【成端更新线段树模板】POJ3468-A Simple Problem with Integers

    http://poj.org/problem?id=3468 _(:зゝ∠)_我又活着回来啦,前段时间太忙了写的题没时间扔上来,以后再说. [问题描述] 成段加某一个值,然后询问区间和. [思路] 讲 ...

  6. 用xib自定义UITableViewCell的注意事项——重用

    问题的提出: 有时候我们经常需要自定义tableView的cell,当cell里面的布局较为复杂时往往舍弃纯代码的方式而改用xib的方式进行自定义.当我们用纯代码的方式布局cell时,往往会在cell ...

  7. vue-cli创建vue项目

    原文出处:https://segmentfault.com/a/1190000008922234 第一步 node环境安装 1.1 如果本机没有安装node运行环境,请下载node 安装包进行安装1. ...

  8. Problem A: 自定义函数strcomp(),实现两个字符串的比较

    #include<stdio.h> int strcmp(char *str1,char *str2) { if(str1!=NULL&&str2!=NULL) { whi ...

  9. Everything | 本地文件搜索引擎工具

    文章目录 本地文件搜索软件 下载地址 注意 本地文件搜索软件 您是否觉得 Windows 自带的文件搜索比较慢?! 今天,给大家分享一款超快好用的本地文件搜索软件:Everything Search ...

  10. DELPHI开发LINUX桌面程序

    DELPHI开发LINUX桌面程序 DELPHI官方目前为止尚不能开发LINUX桌面程序. 但三方控件FmxLinux(商业控件)是可以的.网上有破解版本.