【源码】c#如何使用多线程
1、1. 打开vs或者其他IDE, 创建控制台项目如下
2、2. 无参数的多线程。在Program.cs文件里面写入如下代码
class Program
{
static void Main(string[] args)
{
int num = 2;
for ( int i =0; i < num; i++)
{
noParmaThread();
}
}
private static void StartThread()
{
Console.WriteLine("---------开始了新线程---------");
Thread.Sleep(2000);//wait
Console.WriteLine("---------线程结束---------");
}
//不需要传递参数
private static void noParmaThread()
{
ThreadStart threadStart = new ThreadStart(StartThread);
var thread = new Thread(threadStart);
thread.Start();//开始线程
}
}
3、3 步骤2的运行结果,如下图
4、4. 含参数多线程。
static void Main(string[] args)
{
int num = 3;
for ( int i =0; i < num; i++)
{
oneParamThread("第" + i.ToString() +"个");
}
}
private static void oneParamThread( string param)
{
var thread = new Thread(new ParameterizedThreadStart(StartThread));
thread.SetApartmentState(ApartmentState.STA);
thread.IsBackground = true;
thread.Start(param);
thread.Join();
}
private static void StartThread(Object obj)
{
string s = obj as string;
Console.WriteLine("---------开始了 "+s +" 新线程---------");
Thread.Sleep(2000);//wait
Console.WriteLine("---------线程 "+s+" 结束---------");
}
5、5. 步骤4的运行结果如下图所示
6、6. 使用专门的线程类。代码如下
class Program
{
static void Main(string[] args)
{
int num = 3;
for ( int i =0; i < num; i++)
{
MyThreadClass mt = new MyThreadClass(i);
ThreadStart threadStart = new ThreadStart(mt.StartThread);
Thread thread = new Thread(threadStart);
thread.Start();
//等待线程结束
}
}
}
public class MyThreadClass
{
public string output { set; get; }
public int parame { set; get; }
public MyThreadClass(int p)
{
this.parame = p;
}
public void StartThread()
{
Console.WriteLine("---------开始了 " + parame.ToString() + " 新线程---------");
Thread.Sleep(2000);//wait
output = "线程 "+ parame+" 结束了";
Console.WriteLine("---------线程 " + parame.ToString() + " 结束---------");
}
}
7、7. 步骤6的结果如下图
8、如果您觉得有用,记得在下方点击投票、点赞、关注、留言,小编会定期奉上更多的惊喜哦,您的支持才是小编继续努力的动力,么么哒。