Thread t = new Thread(Task1);t.Start();t.Join(); //等待线程结束Task2();
二、异步执行(Asynchronous)
异步执行就是:
任务启动后,不阻塞当前线程,可以同时执行别的任务。
1 Task(最常用)
Task.Run(() =>{ Console.WriteLine("异步任务执行");});
示例:
static void Main(){ Task.Run(() => { Console.WriteLine("任务1"); Thread.Sleep(2000); }); Console.WriteLine("任务2");}
可能输出:
任务2任务1
说明:
任务1在后台线程执行。
最推荐使用方式。
示例:
async Task Task1(){ Console.WriteLine("任务开始"); await Task.Delay(2000); Console.WriteLine("任务结束");}
调用:
await Task1();
特点:
async 声明异步函数
await 等待任务完成
不会阻塞线程
3 Task.Delay()
异步等待
await Task.Delay(2000);
区别:
三、Thread(传统多线程)
老式方法,现在用得少。
Thread t = new Thread(() =>{ Console.WriteLine("线程执行");});t.Start();
缺点:
管理复杂,线程开销大,现代一般用 Task 替代。
四、同步 vs 异步总结
五、工程中最常见写法
同步
ReadPLC();ProcessData();WritePLC();
异步
await ReadPLCAsync();await ProcessDataAsync();await WritePLCAsync();
六、工业控制中的典型使用
同步
适合:
PLC控制流程/设备顺序控制/机械动作流程
例:夹紧 → 吸真空 → 检测 → 放料
异步
适合:
上位机通讯/UI不卡死/数据采集/网络通讯
例如:
PLC通讯/相机采集/数据库写入/可以同时进行。
---
往期热门文章:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!