C# 前台线程与后台线程区别
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Threading; namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{ public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
//前台线程和后台线程唯一区别就是:应用程序必须运行完所有的前台线程才可以退出;
//而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,
//所有的后台线程在应用程序退出时都会自动结束。
MessageBox.Show("点击按钮启动了一个前台线程。\r\n前台线程:“既然我上台了,我一定要表演完,不然我跟你没完!”");
//前台线程
Thread t1 = new Thread(Say);
t1.IsBackground = false;
t1.Name = "前台线程";
t1.Start();
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("点击按钮启动了一个后台线程。\r\n后台线程:“既然我没上台,我受制于应用程序,它关了我就自动关了(舞台都关了,我在后台再干活就没意思了)!”");
//后台线程
Thread t2 = new Thread(Say);
t2.IsBackground = true;
t2.Name = "后台线程";
t2.Start();
}
private void Say()
{
for (int i = ; i < ; i++)
{
MessageBox.Show("我演,我卖力的演!\n\r把主窗口关了,你看我还在不在?"+i.ToString());
}
}
}
}
建议先启动一个后台线程按钮,感觉没啥吧?然后再启动一个前台线程。看看是否是前台线程很顽强的跟你没完!绝对让你看一遍永不忘记!
C# 前台线程与后台线程区别的更多相关文章
- C# 前台线程与后台线程的区别和联系
c#前台线程与后台线程的区别和联系http://www.189works.com/article-13702-1.html 如何取消后台线程的执行http://www.cnblogs.com/shan ...
- C#.Net前台线程与后台线程的区别
本文来自:http://www.cnblogs.com/zfanlong1314/archive/2012/02/26/2390455.html .Net的公用语言运行时(Common Languag ...
- java前台线程和后台线程
main()函数即主函数,是一个前台线程,前台进程是程序中必须执行完成的,而后台线程则是java中所有前台结束后结束,不管有没有完成,后台线程主要用与内存分配等方面. ...
- C#夯实基础之多线程二:主线程、前台线程与后台线程
我们在<C#夯实基础之多线程一:初识多线程>一文中第二部分中指出,既然windows最终发展出了多线程模型,按理说,我们直接使用一个.NetFramework的线程类就可以直接撸代码了,但 ...
- C#多线程编程实战1.7前台线程和后台线程
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- [一点一滴.NET]前台线程和后台线程
前台线程和后台线程就是通过线程实例的属性IsBackground=true or false来区分的. 新建一个线程是默认是后台线程. 前台线程全部执行完之后,才退出进程. 进程退出,所有的后台线程全 ...
- C# 前台线程和后台线程
进程会等待所有的前台线程完成后在结束工作,但是如果只剩下后台线程,则会直接结束工作 using System; using System.Collections.Generic; using Syst ...
- java守护线程(后台线程)
/*1.让各个对象或类相互灵活交流2.两个线程都冻结了,就不能唤醒了,因为根据代码要一个线程活着才能执行唤醒操作,就像玩木游戏3.中断状态就是冻结状态4.当主线程退出的时候,里面的两个线程都处于冻结状 ...
- Android中UI线程与后台线程交互设计的5种方法
我想关于这个话题已经有很多前辈讨论过了.今天算是一次学习总结吧. 在android的设计思想中,为了确保用户顺滑的操作体验.一 些耗时的任务不能够在UI线程中运行,像访问网络就属于这类任务.因此我们必 ...
随机推荐
- js中运算符的优先级
不确定下面表达式的运算顺序? a>b?c:d+e a&&b==c 看看下表就清楚了,下表按优先级从最高到最低的列出,具有相同优先级按从左至右的顺序求值. 运算符 描述 . [] ...
- Nt内核函数原型and中文
NtLoadDriver 服务控制管理器加载设备驱动. NtUnloadDriver 服务控制管理器支持卸载指定的驱动程序. NtRegisterNewDevice 加载新驱动文件. NtQueryI ...
- Jasper_table_Cloud not resolve style(s)
resolve method : delete style="".
- Web开发-各状态码的意思
常见的HTTP 1.1状态码以及它们对应的状态信息和含义 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分.(HTTP 1.1新) 101 Switching Protoc ...
- Unity3D添加Admob广告
重要提示: 貌似play2014年8月之后不会再支持admob的SDK方式的广告了.github上已经有了 Unity AdMob (Google Play Services) ...
- 转:MFC 的程序中GetAt()的理解
BYTE 是 1字节长度 的 整型, int 是 4 字节长度 的 整型. CString::GetAt(0); 就是把 一个 CString 对象里 的字符串 中的第一个字符,把它的ASCII 值 ...
- C#的Reflection总结
什么是反射 在.NET中的反射也可以实现从对象的外部来了解对象(或程序集)内部结构的功能,哪怕你不知道这个对象(或程序集)是个什么东西,另外.NET中的反射还可以运态创建出对象并执行它其中的方法. 反 ...
- jQueryMobile之listview
效果如下: data-inset="true":为圆角 data-filter="true":带着过滤输入框 <!DOCTYPE html> < ...
- Keil C51 中的函数指针和再入函数
函数指针是C语言中几个难点之一.由于8051的C编译器的独特要求,函数指针和再入函数有更多的挑战需要克服.主要由于函数变量的传递.典型的(绝大部分8051芯片)函数变量通过堆栈的入栈和出栈命令来传递. ...
- 用javascript向一个网页连接接口发送请求,并接收该接口返回的json串
一般前端与后端的互交都是通过json字符串来互交的,我的理解就是与网页接口的来回数据传递采用的数据结构就是json.一般是这样. 比如后端的代码是这样的: @RequestMapping(value ...