[El TestClass] pública clase UnitTest1 { [TestMethod] pública vacío TestMethod1 () { / * Un proceso puede crear uno o más hilos para realizar algún código de programa asociado con el proceso. En C #, el hilo se procesa utilizando la clase Thread, la clase en el espacio de nombres System.Threading. Cuando se utiliza la clase Thread para crear un hilo, solamente es necesario proporcionar una entrada de rosca, la rosca de entrada para decirle al programa qué hacer para hacer de este hilo. Creando una instancia de una clase de objeto Thread puede crear un hilo. Cuando se crea un nuevo objeto Thread, se crea un nuevo subprocesos administrados. Recepción de una clase Thread o ParameterizedThreadStart ThreadStart delegado delegado constructor, el método de envasado delegado llama al método Start es invocado por el nuevo hilo, el código de ejemplo: * / // llamar al método sin parámetros hilo Hilo = new new Thread ( nueva nueva ThreadStart ( ProcessAndThread)); hilo.start (); // subproceso creado por el delegado anónimo = Thread1 el hilo nuevo nuevo la rosca ( delegado () {WriteLog ( Cadena .Empty, nula , " Soy el hilo creado por delegado anónimo " );}); thread1.Start (); // encargado por expresiones lambda creado thread2 Tema = nuevo nuevo el hilo (() => WriteLog ( cadena .Empty, nula , " me fue creado por las expresiones delegado Lambda " )); thread2.Start (); } protegidos vacíos ProcessAndThread () { cadena [] = {Líneas " Primera línea ", " Segunda línea " , " Tercera línea " }; WriteLog ( cadena .Empty, líneas, cadena .Empty); cadena de texto = "Una clase es el tipo más poderoso de datos en C # Como una estructura, " + " una clase define los datos y el comportamiento del tipo de datos. " ; WriteLog ( cadena .Empty, nula , texto); } Protegido vacío WriteLog ( secuencia pre, cadena [] líneas, cuerdaslogContent) { string dir = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + " \\ log \\ " ; dir = AppDomain.CurrentDomain.BaseDirectory + " \\ log \\ " ; si (! Directory.Exists (dir)) { Directory.CreateDirectory (dir); } Si ( cadena .IsNullOrEmpty (pre)) { pre = DateTime.Now.ToString ( " aaaa-MM-DD HH: MM: ss.ffff " ) + " " ; } Cadena logFileUrl = Path.Combine (dir, DateTime.Now.ToString ( " AAAAMMDD " ) + " .log " ); si (! File.Exists (logFileUrl)) { File.Create (logFileUrl) .Close (); } Si (! = Líneas nula ) { File.AppendAllLines (logFileUrl, líneas); } // if (! String.IsNullOrEmpty (logContent)) // { File.AppendAllText (logFileUrl, pre + logContent); //} } }