1.主线程就是UI线程
2.worker线程就是用户线程,跟你自定义一个Thread是没什么区别的,只不过里面封装好了一些事件,方便使用
3.线程之间的关系,其实就是没有关系,并行的
虽然除了主线程之外的线程,经常都称为子线程,但是你单纯的关闭主线程,子线程是不会退出的(线程默认都是前台线程)
除非将子线程声明为后台线程,那么主线程结束,后台线程也会跟着结束
2.worker线程就是用户线程,跟你自定义一个Thread是没什么区别的,只不过里面封装好了一些事件,方便使用
3.线程之间的关系,其实就是没有关系,并行的
虽然除了主线程之外的线程,经常都称为子线程,但是你单纯的关闭主线程,子线程是不会退出的(线程默认都是前台线程)
除非将子线程声明为后台线程,那么主线程结束,后台线程也会跟着结束
解决方案 »
- 求个dataSet 绑定到treeView控件的方法(asp)
- 给大家拜年了!谁用过USB拨号器
- c#基础的东西
- C#编写<?xml version="1.0" encoding="UTF-8" standalone="no"?>
- 请问C#程序如何阻止键盘的所有动作呢?
- winform下在后台直接定义ComboBox 的数据绑定问题
- [共享]发布一个我写的正规表达式测试器
- 提示事件该怎么委托动态方法
- 关于visual stadio 2005的datagridview
- 在windows界面的创建对象的代码在哪里写呀
- C#对SQL中数据库的某几个字段组合进行数量统计
- 用winform自带的打包软件可以编写卸载程序吗?
偶查找学习一下。
BackgroundWorker是·net里用来执行多线程任务的控件,它允许编程者在一个单独的线程上执行一些操作。耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 始终处于停止响应状态。如果您需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用BackgroundWorker类方便地解决问题。
Application.Run(args)作为winform程序起点,当args参数为Form 类型的变量时,此时Run所在的线程就是UI线程。winform规定对于参数args(即对这个Form类型的本身或者其内部成员)的操作必须是创建他的线程,其他线程不可以直接操作,而其他线程要操作此args必须用args.Invoke( // 这里是对UI的操作 比如修改textbox的Text)。这就是UI线程和其他线程的区别。而线程之间没有从属关系,只是winform需要线程来维持消息循环来处理队列消息,维持此消息循环的线程也叫主线程,其他的在主线程内部声明的线程就是工作线程或者子线程。
不明觉厉啊···