c#线程与委托

线程

线程创建的四种方法:

using System;
using System.Threading;
 
namespace Thread_test
{

    //创建线程的方式
    class CreateThread
    {

        // 1.不带参数的委托
        public void CreateThreadWithThreadStart()
        {
            Thread thread = new Thread(new ThreadStart(ThreadMethod));
            thread.Start();
        }

        // 2.带参数的委托
        public void CreateThreadWithParamThreadStart()
        {
            Thread thread = new Thread(new ParameterizedThreadStart(ThreadMethod2));
            Object o= null;
            thread.Start(o);
        }

        ///3.匿名函数
        public void CreateThreadWithAnonymousFunction()
        {
            Thread thread = new Thread(delegate()
            {
                Console.WriteLine("进入子线程1");
                for (int i = 1; i < 4; ++i)
                {
                    Thread.Sleep(50);
                    Console.WriteLine("\t+++++++子线程1+++++++++");
                }
                Console.WriteLine("退出子线程1");
            });
            thread.Start();
        }

        //4.直接赋值委托
        public void CreateThreadWithThreadMethod()
        {
            Thread _hThread = new Thread(ThreadMethod);
            _hThread.Start();
 
        }

        //5.Lambda表达式创建的委托
        public void CreateThreadWithLambda()
        {
            Thread th = new Thread(() => Console.WriteLine("lambda")); 
            th.Start();
        }

        //无参数的方法调用
        public void ThreadMethod()
        {
            Console.WriteLine("无参数方法");
        }

        // 带参数的方法
        public void ThreadMethod2(object obj)
        {
            Console.WriteLine("带无参数方法");
        }  
    }
}

线程的优先级:

可以通过Thread类Priority属性设置,Priority属性是一个ThreadPriority型枚举,列举了5个优先等级,从高到低:Highest、AboveNormal、Normal、BelowNormal和 Lowest,默认为Normal

猜你喜欢

转载自blog.csdn.net/weixin_43160574/article/details/84847029