.NET 多线程 新线程
- C# code
using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace ParameterizedThreadStartCS{ class Program { static void Main(string[] args) { Thread newThread; ParameterizedThreadStart PTS1 = new ParameterizedThreadStart(PrintName); newThread = new Thread(PTS1); newThread.Name = "Thread 1"; newThread.Start(10); ParameterizedThreadStart PTS2 = new ParameterizedThreadStart(PrintNum); newThread = new Thread(PTS2); newThread.Name = "Thread 2"; newThread.Start(10); Console.ReadLine(); } static void PrintName(object times) { for (int i = 1; i < (int)times +1; i++) { Console.WriteLine("*****我叫某某某*****\n"); Thread.Sleep(3000); } } static void PrintNum(object times) { for (int i = 1; i < (int)times + 1; i++) { Console.WriteLine("*****我的学号是0001*****\n"); Thread.Sleep(3000); } } }}
- C# code
using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace ParameterizedThreadStartCS{ class Program { static void Main(string[] args) { Thread newThread; ParameterizedThreadStart PTS = new ParameterizedThreadStart(Print); for(int i=1;i<3;i++) { console.WriteLine("Thread "+i); newThread = new Thread(PTS); newThread.Name=i.ToString(); newThread.Start(10); } Console.ReadLine(); } static void Print(object times) { for (int i = 1; i < (int)times +1; i++) { Console.WriteLine("*****我叫某某某,我的学号是0001*****\n"); Thread.Sleep(1); } } }}
请问大家,这两段代码区别在哪?
都是多线程吗?
什么是新线程?上面的代码中有体现吗?
谢谢!
[解决办法]
都是多线程
各自启动了两个新线程
newThread = new Thread(PTS1); 创建线程
newThread.Start(10);启动线程
本质上两个程序一样。
如果说有区别的话,
第一个程序的两个线程各自委托执行了一个方法。
第二个程序的两个线程委托执行同一个方法。
[解决办法]
默认就是单线程,即UI的线程上。所以如果你下载文件,或处理大数据时,UI线程会被阻塞,界面会无法响应。
如果new了一个Thread,让这个Thread去下载文件,UI线程就不会阻塞,能控制进度条了。
[解决办法]
我叫某某某,我的学号是0001
分别在两个线程中输出 与 在两个线程中一起输出 的差别