ThreadStart委托类型

    xiaoxiao2022-07-02  125

    1.创建ThreadStart委托类型对象

    namespace Test {     class TestThread     {         private static void ThreadFuncOne()         {             for (int i = 0; i < 10; i++)             {                 Console.WriteLine(Thread.CurrentThread.Name + "   i =  " + i);             }             Console.WriteLine(Thread.CurrentThread.Name + " has finished");         }

            static void Main(string[] args)         {             Thread.CurrentThread.Name = "MainThread";

                // public delegate void ThreadStart();声明一个ThreadStart委托类型             //如下代码使用TestThread.ThreadFuncOne方法创建一个委托对象 new ThreadStart(TestThread.ThreadFuncOne)             Thread newThread = new Thread(new ThreadStart(TestThread.ThreadFuncOne));             newThread.Name = "NewThread";

                for (int j = 0; j < 20; j++)             {                 if (j == 10)                 {                     newThread.Start();                     newThread.Join();                 }                 else                 {                     Console.WriteLine(Thread.CurrentThread.Name + "   j =  " + j);                 }             }             Console.Read();         }     } }

     

    2.Thread类有4个重载:     // 摘要:     //     创建并控制线程,设置其优先级并获取其状态。     [ClassInterface(ClassInterfaceType.None)]     [ComDefaultInterface(typeof(_Thread))]     [ComVisible(true)]     public sealed class Thread : CriticalFinalizerObject, _Thread     {         //         // 摘要:         //     初始化 System.Threading.Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托。         //         // 参数:         //   start:         //     System.Threading.ParameterizedThreadStart 委托,它表示此线程开始执行时要调用的方法。         //         // 异常:         //   T:System.ArgumentNullException:         //     start 为 null。         [SecuritySafeCritical]         public Thread(ParameterizedThreadStart start);         //         // 摘要:         //     初始化 System.Threading.Thread 类的新实例。         //         // 参数:         //   start:         //     System.Threading.ThreadStart 委托,它表示此线程开始执行时要调用的方法。         //         // 异常:         //   T:System.ArgumentNullException:         //     start 参数为 null。         [SecuritySafeCritical]         public Thread(ThreadStart start);         //         // 摘要:         //     初始化 System.Threading.Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托,并指定线程的最大堆栈大小。         //         // 参数:         //   start:         //     System.Threading.ParameterizedThreadStart 委托,它表示此线程开始执行时要调用的方法。         //         //   maxStackSize:         //     线程要使用的最大堆栈大小(以字节为单位);如果为 0 则使用可执行文件的文件头中指定的默认最大堆栈大小。重要地,对于部分受信任的代码,如果 maxStackSize         //     大于默认堆栈大小,则将其忽略。不引发异常。         //         // 异常:         //   T:System.ArgumentNullException:         //     start 为 null。         //         //   T:System.ArgumentOutOfRangeException:         //     maxStackSize 小于零。         [SecuritySafeCritical]         public Thread(ParameterizedThreadStart start, int maxStackSize);         //         // 摘要:         //     初始化 System.Threading.Thread 类的新实例,指定线程的最大堆栈大小。         //         // 参数:         //   start:         //     System.Threading.ThreadStart 委托,它表示此线程开始执行时要调用的方法。         //         //   maxStackSize:         //     线程要使用的最大堆栈大小(以字节为单位);如果为 0 则使用可执行文件的文件头中指定的默认最大堆栈大小。重要地,对于部分受信任的代码,如果 maxStackSize         //     大于默认堆栈大小,则将其忽略。不引发异常。         //         // 异常:         //   T:System.ArgumentNullException:         //     start 为 null。         //         //   T:System.ArgumentOutOfRangeException:         //     maxStackSize 小于零。         [SecuritySafeCritical]         public Thread(ThreadStart start, int maxStackSize);

    最新回复(0)