进程A-------线程A1---------结束
线程A2
线程A3
线程A4
线程A5
1命名空间
using System.Threading;
2创建对象
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
Thread j进程A=null;
必须要在字段位置定义对象,且不要实例化。这个位置相当于全局变量。后面的操作围绕它来进行。另外设置一下 CheckForIllegalCrossThreadCalls=false;
3创建线程
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
Thread j进程A = null;
public Form1()
{
InitializeComponent();
CheckForIllegalCrossThreadCalls = false;
}
void x线程A1()
{
int i = 0;
while (true)
{
listBox1.Items.Insert(0, i); // 始终在第一行插入
++i;
Thread.Sleep(3000);
if (i > 10) break;
}
}
private void button1_Click(object sender, EventArgs e)
{
j进程A = new Thread(new ThreadStart(x线程A1));// 绑定线程A1
j进程A.Start();// 线程A1运行
}
}
}
4开启线程
j进程A.Start();// 线程A1运行
5阻塞主线程(等子线程运行完成后,才运行)
private void button2_Click(object sender, EventArgs e)
{
//j进程A .Join(new TimeSpan(1000));//阻塞
j进程A.Join();//阻塞本层(等待 j进程A运行完成 )
}
等待子任务完成,主程序才继续。
6休眠
private void button4_Click(object sender, EventArgs e)
{
Thread.Sleep(5000);
}
卡所有线程。