Isbackground

导读 【#Isbackground#】首先不是为了多线程而多线程,多线程会极大的带来额外的出错的几率。C#中第一个打开窗口的线程是主线程,也是处理UI的线...
【#Isbackground#】

首先不是为了多线程而多线程,多线程会极大的带来额外的出错的几率。

C#中第一个打开窗口的线程是主线程,也是处理UI的线程,最好保持这个线程通畅,即不要有阻塞操作,如Thread.Sleep(10);等这样是不好的。

耗时的线程需要打开新的线程来操作,而且最好把IsBackground属性设为True。这样在所有前台线程推出后,这些后台线程也自动退出。 手写俩例子,有错自己查!!一、首先初始化一个线程,

需要一个threadStart实例,

Thread的构造函数 public Thread(ThreadStart threadStart)

那就再看threadStart的构造函数

public threadStart(Delegate delegate)

需要一个委托。直接用函数名也可以。

比如你要另开一线呈执行的一个方法名为 newThread

那就如下

ThreadStart ThreadS=new ThreadStart(newThread);

Thread t=new Thread(ThreadS);

t.Start();二、using System;

using System.Collections.Generic;

using SystemponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Threading;

namespace ConsoleApplication3

{

public partial class Form1 : Form

{

private Thread th1, th2;

public Form1()

{

InitializeComponent();

}

public void thOpr1()

{

Application.Run(new Form2());

}

public void thOpr2()

{

Application.Run(new Form3());

}

public static void Main(String[] args)

{

Application.Run(new Form1());

}

private void button1_Click(object sender, EventArgs e)

{

th1 = new Thread(new ThreadStart(thOpr1));

th2 = new Thread(new ThreadStart(thOpr2));

th1.Start();

th2.Start();

}

}

}

【#Isbackground#】到此分享完毕,希望对大家有所帮助。

标签:

免责声明:本文由用户上传,如有侵权请联系删除!

上一篇爱就足够 歌词

下一篇最后一页