C# 线程的优先级
前言:
C#线程优先级是非常有必要去学习的一个知识点,我们要知道学习线程优先级的必要性,如果在应用程序中有多个线程在运行,但一些线程比另一些线程重要。在这种情况下,可以在一个进程中为不同的线程指定不同的优先级。一般情况下,如果有优先级较高的线程在工作,就不会给优先级较低的线程分配任何时间片,其优点是可以保证给接收用户输入的线程指定较高的优先级。在大多数的时间内,这个线程什么也不做,而其他线程则执行它们的任务。但是,如果用户输入了信息,这个线程就立即获得比应用程序中其他线程更高的优先级,在短时间内处理用户输入事件。所以说线程的优先级是非常有必要学习的一个知识点,创作不易点赞关注评论收藏,你的点赞是我创作的动力,也是我学习的方向!!!谢谢啦!!!
一、线程优先级关键属性
C#线程优先级的规律:高优先级的线程可以完全阻止低优先级的线程执行,因此在改变线程的优先级时要特别小心。线程的优先级可以定义为ThreadPriority枚举的值,即Highest、AboveNormal、Normal、BelowNormal和Lowest。每个进程都有一个基本优先级,这些值与进程的优先级是有关系的。给线程指定较高的优先级,可以确保它在系统中优先运行。
AboveNormal | 3 | 线程可以安排在具有优先级的线程之后Highest 和具有优先级的线程之前Normal 。 |
---|---|---|
BelowNormal | 1 | 线程可以安排在具有优先级的线程之后Normal 和具有优先级的线程之前Lowest 。 |
Highest | 4 | 可以在具有任何其他优先级的线程之前调度线程。 |
Lowest | 0 | 可以在具有任何其他优先级的线程之后调度线程。 |
Normal | 2 | 线程可以安排在具有优先级的线程之后AboveNormal 和具有优先级的线程之前BelowNormal 。默认情况下,线程具有Normal 优先级。 |
二、事例演示
只是做了简单的演示和调用这个优先级的方式,具体代码如下所示:
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 SQlite
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
Thread A = new Thread(new ThreadStart(T1));
Thread B = new Thread(new ThreadStart(T2));
Thread C = new Thread(new ThreadStart(T3));
A.Priority = ThreadPriority.Highest;
B.Priority = ThreadPriority.AboveNormal;
C.Priority = ThreadPriority.AboveNormal;
A.Start();
B.Start();
C.Start();
}
public static void T1()
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("A");
}
}
public static void T2()
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("B");
}
}
public static void T3()
{
for (int i = 1; i < 100; i++)
{
Console.WriteLine("C");
}
}
}
}
总结:
一个线程的优先级并不是越高越好,应考虑整个进程的运行情况,做出最优的选择,才能达到最好的效果,同时优先级相同时按照时间片轮流运行,另外只有高优先级的线程停止休眠或者暂停时,低优先级的线程才会运行,这篇文章比较简单,只是简单的学习一下,对它有更多的认识,在有需求的时候最起码有路子,虽然很简单,但是也是可以学到东西的,我们学习了新的知识,对我们的知识储备及技术又有新的一点点的进步,C#的技术就是先简单再难嘛,积少成多之后才会成长才会进步,我们要不断的学习不断的探索,才能有学习的动力,才会有学习的欲望,创作不易,点赞评论收藏关注,嘿嘿,不喜勿喷!!!!
- 点赞
- 收藏
- 关注作者
评论(0)