winform中console.write的使用、线程的产生、线程的使用、创建单例模式

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;
        }
    }
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚努力的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值