根据场景和需要来,确定的独占的可以选择Thread 和Task,可变的不确定的任务池选择Task或者ThreadPool。
从写法上说,Task最简单方便,Task是对线程的进一步封装,本质上都是线程。
推荐用Task,Task其实是对Thread还有线程池的进一步封装。用Task不容易出错,而且编码很方便
Task,一般项目中的任务都用Task,统一管理
Task 和 Thread 原则上都是 可以实现新建一个线程或者从线程池获取线程来执行,没有哪个更好的说。
不过更建议Task,因为它属于比较新的sdk,提供了更多的选项支持
例:
Task.Factory.StartNew 方法 有个枚举参数 TaskCreationOptions,可以设置 TaskCreationOptions.LongRunning
Task 线程池
Thread 线程
Task线程池能重复利用线程,减少内存开销
Task是任务,它的执行是由线程去执行的(没标注情况下是由线程池的线程),而且他可以随时掌握执行的状态。而你的线程就是你自己创建的线程了,但是没有可以掌握的状态。再说单双核,就要提到CPU和时间片。单核绝对不可能实现并行。您不说业务场景,没法推荐。如果你决定用task建议你表明你是长时间运行的task