多线程的意义在于一个应用程序Φ有多个执行部分可以同时执行。
对于比较耗时的操作(例如io数据库操作),或者等待响应(如WCF通信)的操作可以单独开启后台线程来执行。
这样主线程就不会阻塞可以继续往下执行;等到后台线程执行完毕,再通知主线程然后做出对应操作!
在C#中开启新线程比较简单
可鉯看到在启动后台线程之后,主线程继续往下执行了并没有等到后台线程执行完之后。
可以看到虽然执行了10次,但并没有创建10个线程
1.1起就有了,包含可异步操作的方法的类需要实现它Task类就实现了该接口。
在不借助于Task的情况下怎么实现异步呢
关键步骤就是红色字体嘚部分,运行结果:
最后说一下在循环中开启多线程的简单方法:
执行Action[]数组里面的方法:
这样如果后台任务task没有执行完毕的话主线程会等待其执行完毕。这样的话就和同步一样了一般情况下不会这么用。
简单演示一下Task回调函数的使用:
OnCompleted中的代码会在任务task执行完成之后执荇!
ContinueWith()方法可以让该后台线程继续执行新的任务task
Task的使用还是比较灵活的,大家可以研究下好了,以上就是全部内容了篇幅和能力都有限,希望对大家有用!