写点什么

C# 线程的优先级

作者:IC00
  • 2022-10-24
    湖南
  • 本文字数:1486 字

    阅读完需:约 5 分钟

C# 线程的优先级

前言:

C#线程优先级是非常有必要去学习的一个知识点,我们要知道学习线程优先级的必要性,如果在应用程序中有多个线程在运行,但一些线程比另一些线程重要。在这种情况下,可以在一个进程中为不同的线程指定不同的优先级。一般情况下,如果有优先级较高的线程在工作,就不会给优先级较低的线程分配任何时间片,其优点是可以保证给接收用户输入的线程指定较高的优先级。在大多数的时间内,这个线程什么也不做,而其他线程则执行它们的任务。但是,如果用户输入了信息,这个线程就立即获得比应用程序中其他线程更高的优先级,在短时间内处理用户输入事件。所以说线程的优先级是非常有必要学习的一个知识点,创作不易点赞关注评论收藏,你的点赞是我创作的动力,也是我学习的方向!!!谢谢啦!!!


一、线程优先级关键属性

C#线程优先级的规律:高优先级的线程可以完全阻止低优先级的线程执行,因此在改变线程的优先级时要特别小心。线程的优先级可以定义为 ThreadPriority 枚举的值,即 Highest、AboveNormal、Normal、BelowNormal 和 Lowest。每个进程都有一个基本优先级,这些值与进程的优先级是有关系的。给线程指定较高的优先级,可以确保它在系统中优先运行。


二、事例演示

只是做了简单的演示和调用这个优先级的方式,具体代码如下所示:





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#的技术就是先简单再难嘛,积少成多之后才会成长才会进步,我们要不断的学习不断的探索,才能有学习的动力,才会有学习的欲望,创作不易,点赞评论收藏关注,嘿嘿,不喜勿喷!!!!



发布于: 刚刚阅读数: 7
用户头像

IC00

关注

一个热爱生活,喜欢拍照的热血青年 2022-07-14 加入

一个想学习技术的小盆友,想努力更文,争取今年发100篇

评论

发布
暂无评论
C# 线程的优先级_C#_IC00_InfoQ写作社区