C#教程:线程的暂停与恢复

内容导读: 线程通过调用Suspend方法来暂停线程。当线程针对自身调用Suspend 方法时,调用将会阻止,直到另一个线程继续该线程。当一个线程针对另一个线程调用.Suspend 方法时,调用是非组阻止调线程的暂停与恢复

线程通过调用Suspend方法来暂停线程。当线程针对自身调用Suspend 方法时,调用将会阻止,直到另一个线程继续该线程。当一个线程针对另一个线程调用.Suspend 方法时,调用是非组阻止调用,这会导致另一线程暂停。线程通过调用Resume方法来恢复被暂停的线程。无论调用了多少次Suspend方法,调用Resume方法均会使另一个线程脱离挂起状态,并导致该线程继续执行。

示例

线程的暂停与恢复

下面的代码实现了线程t的暂停与恢复。

private void Form1_Load(object sender, EventArgs e)

{

Thread t = new Thread(new ThreadStart(TestMethord));

t.Start();

t. Suspend();

MessageBox.Show("线程已暂停");

t. Resume ();
C#教程:线程的暂停与恢复

MessageBox.Show("线程已恢复");

}

public void TestMethord() //线程调用的自定义方法

{

}

完整程序代码如下:

★ ★★★★Form1.cs窗体代码文件完整程序代码★★★★★

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Threading;

namespace _8_01

{

public partial class Form1 : Form

{

Thread t;

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

t = new Thread(new ThreadStart(TestMethord));

t.Start();

t.Suspend();

MessageBox.Show("线程已暂停");

t.Resume();

MessageBox.Show("线程已恢复");

}

public void TestMethord() //线程调用的自定义方法

{

while (true)

{

}

}

private void Form1_FormClosed(object sender, FormClosedEventArgs e)

{

t.Abort();

}

}

}

★ ★★★★Form1.designer.cs窗体设计文件完整程序代码★★★★★

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Threading;

namespace _8_01

{

public partial class Form1 : Form

{

Thread t;

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

t = new Thread(new ThreadStart(TestMethord));

t.Start();

t.Suspend();

MessageBox.Show("线程已暂停");

t.Resume();

MessageBox.Show("线程已恢复");

}

public void TestMethord() //线程调用的自定义方法

{

while (true)

{

}

}

private void Form1_FormClosed(object sender, FormClosedEventArgs e)

{

t.Abort();

}

}

}

★ ★★★★Program.cs主程序文件完整程序代码★★★★★

using System;

using System.Collections.Generic;

using System.Windows.Forms;

namespace _8_01

{

static class Program

{

/// <summary>

/// 应用程序的主入口点。

/// </summary>

[STAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

}

}

}

  

爱华网本文地址 » http://www.aihuau.com/a/25101013/162871.html

更多阅读

ps教程:蒙版的类型及应用详解

蒙版在PS里的应用相当广泛,蒙版最大的特点就是可以反复修改,却不会影响到本身图层的任何构造。如果对蒙版调整的图像不满意,可以去掉蒙版原图像又会重现。真是非常神奇的工具。ps教程:蒙版的类型及应用详解——工具/原料photoshop5.0以

进程线程区别,进程间通信方式 进程和线程的通信方式

今天阿里云面试,平时感觉挺熟悉的问题,却答的不好~ 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程.

PS教程:简单快速的通道抠图

通过通道抠图的方法简单快速完成细节复杂的图像,省时又省力。PS教程:简单快速的通道抠图——工具/原料Photoshop、图片PS教程:简单快速的通道抠图——步骤/方法PS教程:简单快速的通道抠图 1、

声明:《C#教程:线程的暂停与恢复》为网友其实我情陷你分享!如侵犯到您的合法权益请联系我们删除