线程

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
{
public Form1()
{
InitializeComponent();
}
Thread thread;

/// <summary>
/// 启动线程
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{

ThreadStart threadStart = new ThreadStart(SetText);
thread = new Thread(threadStart);
thread.Start();
}
/// <summary>
/// 睡眠
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
Thread.Sleep(5000);
}

/// <summary>
/// 挂起
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
[Obsolete]
private void button3_Click(object sender, EventArgs e)
{


if (thread.ThreadState!=ThreadState.Suspended)
{
thread.Suspend();
}

}

/// <summary>
/// 恢复
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
[Obsolete]
private void button4_Click(object sender, EventArgs e)
{
if (thread.ThreadState == ThreadState.Suspended)
{
thread.Resume();
}
}

/// <summary>
/// 终止线程
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button5_Click(object sender, EventArgs e)
{
thread.Abort();
}
/// <summary>
/// 带参数线程
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button6_Click(object sender, EventArgs e)
{

ThreadStart threadStart = new ThreadStart(SetTextTwo);
thread = new Thread(threadStart);
thread.Start();

}

/// <summary>
/// 文本框赋值
/// </summary>
/// <param name="par"></param>
public void SetText()
{
for (int i = 0; i <= 100000; i++)
{
textBox2.Invoke(new Action(() => { textBox2.Text = "第" + i + "条记录同步完成"; }));
progressBar1.Invoke(new Action(() => { progressBar1.Value = i; }));
label2.Invoke(new Action(() => { label2.Text = Math.Round(Convert.ToDouble(i) / 1000.00, 2) + "%"; }));
}
}


/// <summary>
/// 文本框赋值
/// </summary>
/// <param name="par"></param>
public void SetTextTwo()
{
for (int i = 0; i <= 100000; i++)
{
textBox2.Invoke(new Action(() => { textBox2.Text=$"[{textBox1.Text}]第" + i + "条记录同步完成"; }));
progressBar1.Invoke(new Action(() => { progressBar1.Value = i; }));
label2.Invoke(new Action(() => { label2.Text = Math.Round(Convert.ToDouble(i) / 1000.00, 2) + "%"; }));
}
}

}
}

原文地址:https://www.cnblogs.com/ryzryz/p/12159905.html