第一种快速启动
| 
 1 
2 
3 
4 
 | 
Thread t = new Thread(()=>{    //下面写一些在线程中处理的方法});t.Start(); | 
第二种启动方法
| 
 1 
2 
3 
4 
5 
6 
7 
 | 
Thread newWindowThread = new Thread(new ThreadStart(ThreadStartingPoint));newWindowThread.Start();//线程调用方法private void ThreadStartingPoint(){  //下面写一些在线程中处理的方法} | 
| 
 1 
2 
3 
4 
5 
6 
7 
 | 
Thread thread = new Thread(() => ThreadStartingPointWithPara("hello"));thread.Start();//线程调用方法private void ThreadStartingPointWithPara(string str){    //下面写一些在线程中处理的方法} | 
解决方案之一就是使用WPF的Dispatcher线程模型来修改,BeginInvoke(异步)会立即返回,Invoke(同步)会等执行完后再返回
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
 | 
//同步操作UI线程元素this.Dispatcher.Invoke(new Action(() =>{    //这里进行一些UI上的操作}));//异步操作UI线程元素this.Dispatcher.BeginInvoke(new Action(() =>{    //这里进行一些UI上的操作})); | 
同一个变量多线程访问时可能一个线程还没有对这个变量处理完,就被其它线程修改,这个时候就需要同步。
| 
 1 
2 
3 
4 
5 
 | 
private static object o = new object();lock (o){    //把同一时间只能有一个线程访问的数据放这里面} | 
转自:https://www.cnblogs.com/microsoft-zh/p/14590736.html
原文:https://www.cnblogs.com/DoNetCShap/p/14772237.html