把2016年在简书写的文转过来~ C# 开启子线程的四种情况 ,
接触C#和VS也差不多五个月了,其实也还是个小白,关于线程的用法其实在网上找又一大堆,无形参无返回,无形参有返回,有形参无返回,有形参有返回的四种情况,简单的总结一下我使用过的方法吧~
1.无形参无返回
Thread thread = new Thread(doWork);
thread.start();
2.无形参有返回
(这里的栗子是,doThread返回一个bool值)
public delegate bool MyDelegate();//根据doThread的返回类型声明一个委托
private void delegateThread()
{
MyDelegate dele = new MyDelegate(doWork);//委托,但是还是还会在主线程上处理
bool result = dele.Invoke(); //收集返回值
}
private void doThread()
{
Control.CheckForIllegalCrossThreadCalls = false;//防止获取界面控件是抛出的异常
Thread thread = new Thread(new ThreadStart(delegateThread));
thread.Priority = ThreadPriority.Highest;//优先级
thread.IsBackground = true;//与程序共存亡
thread.Start();
}
3.有形参无返回