标签:interval exit art reg 多线程 执行 exce object top
1、不需要传参:
class Program7 { private static void ExecuteInForeground() { DateTime start = DateTime.Now; var sw = Stopwatch.StartNew(); Console.WriteLine("Thread {0}: {1}, Priority {2}", Thread.CurrentThread.ManagedThreadId, Thread.CurrentThread.ThreadState, Thread.CurrentThread.Priority); do { Console.WriteLine("Thread {0}: Elapsed {1:N2} seconds", Thread.CurrentThread.ManagedThreadId, sw.ElapsedMilliseconds / 1000.0); Thread.Sleep(500); } while (sw.ElapsedMilliseconds <= 5000); sw.Stop(); } static void Main7777(string[] args) { //如果该方法不具有任何参数,则传递ThreadStart委托给构造函数。 //使用的是这个构造函数 //public delegate void ThreadStart() var th = new Thread(ExecuteInForeground); th.Start(); Thread.Sleep(1000); Console.WriteLine("Main thread ({0}) exiting...", Thread.CurrentThread.ManagedThreadId); Console.ReadLine(); } }
2、需要传参:
class Program8 { private static void ExecuteInForeground(Object obj) { int interval; try { interval = (int)obj; } catch (InvalidCastException) { interval = 5000; } DateTime start = DateTime.Now; var sw = Stopwatch.StartNew(); Console.WriteLine("Thread {0}: {1}, Priority {2}", Thread.CurrentThread.ManagedThreadId, Thread.CurrentThread.ThreadState, Thread.CurrentThread.Priority); do { Console.WriteLine("Thread {0}: Elapsed {1:N2} seconds", Thread.CurrentThread.ManagedThreadId, sw.ElapsedMilliseconds / 1000.0); Thread.Sleep(500); } while (sw.ElapsedMilliseconds <= interval); sw.Stop(); } static void Main(string[] args) { //如果该方法具有参数,则传递ParameterizedThreadStart委托给构造函数。 //使用的是这个构造函数 //public delegate void ParameterizedThreadStart(object obj) var th = new Thread(ExecuteInForeground); th.Start(4500); Thread.Sleep(1000); Console.WriteLine("Main thread ({0}) exiting...", Thread.CurrentThread.ManagedThreadId); Console.WriteLine("主线程执行完毕"); Console.ReadLine(); } }
标签:interval exit art reg 多线程 执行 exce object top
原文地址:https://www.cnblogs.com/25miao/p/9862525.html