winform中console.write的使用、线程的产生、线程的使用、创建单例模式
来源:互联网 发布:ug安装java虚拟机 编辑:程序博客网 时间:2024/05/22 04:24
1 winform中的,不能像控制台一样正常在输出窗口中查看结果,可以 启动(F5),调试--窗口---输出,在下面的输出中就可以看到打印的字符;
2 主窗口是一个线程,如果不新创建线程的话,所有的事件都是由主线程来做,导致事件不可以同时进行。需要创建线程来执行。
创建一个线程对象:
Thread thread=new Thread( test ); //test执行线程要做的方法
thread.Start();// 标记线程已就绪,随时可以被执行;cpu决定什么时候执行此线程。
3 产生线程的4个步骤
1)编写产生线程要执行的方法;
2)引用using System.Threading命名空间;
3)实例化Thread类,并传入一个指向线程所要运行方法的委托,(这时候线程已经产生,但是还没有运行)
4)调用Thread实例的Start方法,标记该线程可以被CPU执行了,但具体执行时间由CPU决定。
4 异常:不允许跨线程访问。从不是创建控件的线程访问它,若这些控件都是由主窗体创建,也就是说不是主线程在访问。
5 取消跨线程的访问,control类:是winform中所有控件的基类,所有的控件都继承于control,
6 formclosing,当点击关闭窗体时
7 formclosed,已经关闭窗体了。
8 thread.Abort()//线程被终止后,就不可以再被Start()了。thread==null :线程是否关闭。
9 Thread.Sleep(2); 静态方法,可以使当前线程停止一段时间运行。
10 Thread.CurrentThread 获得当前线程的引用
11 创建单例模式的步骤
1) 创建私有构造函数
2 )提供一个静态方法,返回一个对象
3 )创建一个单例
namespace 单例模式{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// 点击一下button1,就会出现Form2,创建单例模式,始终只出现一个form2 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { Form2 form2 = Form2.GetSingle();// new Form2(); form2.Show(); } }}
form2中的代码,在form1中的button中,点击后产生form2,自始至终产生的只有一个form2
namespace 单例模式{ public partial class Form2 : Form { //全局唯一的一个单例 public static Form2 FormSingle = null; private Form2()//将构造函数私有化。提供一个静态的方法返回一个对象 { InitializeComponent(); } //这里注意一点,静态方法中访问的成员只能是静态成员 public static Form2 GetSingle()//构造一个方法,返回一个对象 { if (FormSingle==null) { FormSingle = new Form2();//这里调用同一个类中的私有构造函数 } return FormSingle; } }}
- winform中console.write的使用、线程的产生、线程的使用、创建单例模式
- 四个月的蜕变之单例模式创建线程池和使用
- iOS 使用 dispatch_once 创建线程安全的单例
- 线程的创建使用
- 创建线程的函数使用
- 线程的创建与使用
- 线程的创建和使用
- 线程的创建与使用
- 线程的创建和使用
- Java中创建单例模式的五种方法及线程安全
- 如何创建线程安全的单例模式?线程安全的Singleton!
- 单例模式的创建及使用
- winform 单例模式 单线程例子
- WinForm中线程问题:线程间操作无效: 从不是创建控件“...”的线程访问它
- WinForm中线程问题:线程间操作无效: 从不是创建控件“...”的线程访问它
- 创建线程安全的单例
- Java中线程安全的单例模式
- Java中线程安全的单例模式
- CentOS7 安装翻译软件stardict
- 转销售了
- AdaBoost代码理解算法的原理
- web--资源的加载
- 关于外包公司线性盈利与软件公司规模化盈利的思考
- winform中console.write的使用、线程的产生、线程的使用、创建单例模式
- java封装
- 建立github本地仓库与远程仓库
- 二叉树---待完善
- java 注解的几大作用及使用方法详解
- Spring中基于配置文件的方式来配置AOP
- java基础-面向对象(上)
- Android控件系列之RadioButton&RadioGroup
- mybatis-映射器-resultMap结果集映射2-association一对一级联