Visual studio之C# 新建线程与定时器的使用
背景
App需要开线程和定时器,本文对这两种的通用方法做个记录
正文
线程
- 添加命名空间
using System.Threading;
- 创建线程
//shutdownlazer()即是线程要执行的函数
Thread shutdownlazer_thread = new Thread(shutdownlazer);
- 开启线程
//shutdownlazer_thread即为第 2 步获取到的线程句柄
shutdownlazer_thread.Start();
- 关闭线程
线程不需要自己关闭,当shutdownlazer()函数运行完退出了,线程也就自然关闭了。当然,若是关闭主窗口,则线程一定要关闭,可在主窗口关闭事件中调用函数关闭所有线程,
// 窗口关闭,关闭所有线程
private void Mainwin_FormClosing(object sender, FormClosingEventArgs e)
{
System.Environment.Exit(0);
}
定时器
- 添加命名空间
using System.Timers;
- 实例化一个定时器
private static System.Timers.Timer RUtimer;
- 创建定时器并设定定时器参数
// 创建一个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# 新建线程与定时器的使用的更多相关文章
- 修改VISUAL STUDIO EXPRESS 2012新建C++文件编码
本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供markdown格式源码,欢迎使 ...
- crossplatform---Nodejs in Visual Studio Code 06.新建Module
1.开始 Node.js:https://nodejs.org 2.Moudle js编程中,由于大家可以直接在全局作用域中编写代码,使开发人员可以很容易的新建一个全局变量或这全局模块,这些全局变量或 ...
- Nodejs in Visual Studio Code 06.新建Module
1.开始 Node.js:https://nodejs.org 2.Moudle js编程中,由于大家可以直接在全局作用域中编写代码,使开发人员可以很容易的新建一个全局变量或这全局模块,这些全局变量或 ...
- Visual studio之C#跨线程调用UI控件
背景 当前串口通讯项目,多个线程需要同时利用richTextBoxMsg控件打印信息,直接调用会造成线程不安全,严重的时候会直接导致UI线程挂掉,因此本篇就跨线程调用UI控件做个记录. 正文 定义控件 ...
- Visual Studio 2015 新建MVC项目 Package Manager Console不能使用 (HRESULT: 0x80131500)
Visual studio 2015 突然新建不了MVC项目,报出错误: HRESULT: 0x80131500 在折腾了很长时间,最后在Github上看到这样一个贴 地址:https://githu ...
- 带你玩转Visual Studio
带你玩转Visual Studio 带你新建一个工程 工程目录下各文件的含义 解决方案与工程 在这之前先了解一个概念:解决方案与工程. 解决方案(Solution):一个大型项目的整体的工作环境: 工 ...
- 带你玩转Visual Studio——带你了解VC++各种类型的工程
原文地址:http://blog.csdn.net/luoweifu/article/details/48816605 上一篇文章带你玩转Visual Studio——带你新建一个工程一文中提到新建一 ...
- Apworks框架实战(四):使用Visual Studio开发面向经典分层架构的应用程序:从EasyMemo案例开始
时隔一年,继续我们的Apworks框架之旅.在接下来的文章中,我将逐渐向大家介绍如何在Visual Studio中结合Apworks框架,使用ASP.NET Web API和MVC来开发面向经典分层架 ...
- 用C#语言在Visual Studio 2010里开发一个自定义的PowerShell Cmdlet
1. 打开Visual Studio 2010 2. 新建一个基于Class Library的项目 3. 给项目起个名字然后OK 4. 为项目添加下列Reference System.Manageme ...
随机推荐
- 【BZOJ 4571】【SCOI 2016】美味
http://www.lydsy.com/JudgeOnline/problem.php?id=4571 这道题因为有加法,不能像可持久化trie那样每次判断只判断一个子树,而是在主席树上查询\(\l ...
- 探究Activity(1)--Activity的基本用法
一.Activity是什么 Activity(活动)是最容易吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互.一个应用程序中应该包括零个或多个Activity. 二.Activi ...
- python基础之条件判断和循环
1.条件判断 age = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid' ...
- php红包
/** 转http://www.oschina.net/code/snippet_1392428_54532 谢谢 php_fangting * @param $total [你要发的红包 ...
- IIS配置Asp.net时,出现“未能加载文件或程序集“System.Web.Extensions.Design, Version=1.0.61025.0”
如果出现未能加载文件或程序集“System.Web.Extensions.Design, Version=1.0.61025.0, 主要是没有安装.net framwork 3.5,安装一下就行了. ...
- Fork & vfork & clone (转载)
转自:http://blog.csdn.net/zqy2000zqy/archive/2006/09/04/1176924.aspx 进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合, ...
- 【JSP JSTL】<c:if>多个判断条件 + <c:foreach>满足条件跳出循环
有一个需求,将所拥有的权限存放于session中,现在JSP页面判断这些如果在所有权限中有某一个或者某几个,就显示相对应的页面内容 举一个例子,实现以上的逻辑,<c:if>多个判断条件 + ...
- EASYUI DATAGRID加合计
想达到的效果(计算当前展示的20条的合计数量(一言难尽)): 参考http://www.jb51.net/article/85645.htm(万分感谢该文的作者) 相关代码: function onL ...
- NGUI自适应屏幕分辨率
unity官方承诺的新ui系统一直没有推出来,我们的UI使用的是原生的OnGUI系统,刚好UI需要改版,索性就想迁到NGUI上面来,于是看了一下NGUI源码,发现NGUI可以大大的降低DrawCall ...
- oracle 10g函数大全--字符型函数
ASCII(x1) [功能]:返回字符表达式最左端字符的ASCII 码值. [参数]:x1,字符表达式 [返回]:数值型 [示例] SQL> select ascii('A') A,ascii( ...