在.net中重用线程的正确方法是什么?我知道线程池做到了,但我不知道如何。我已经有很多(100+)线程的服务器代码工作得很好,但目前我有一个新的场景,我需要重复使用线程而不是针对同一个动作,但针对不同的线程。重复使用线程以执行不同的操作
如果我有2个方法,我该如何重用映射到方法1的线程并将其映射为运行方法2?
伪代码:
var thread = new Thread(method1);
do work with thread here
done, now how do i reuse the thread but tell it which method to run without creating a new one?
请注意,我不希望在如何做到这一点不使用线程的建议,我确实需要直接使用线程,无论是线程池,也没有任务系统适合我使用案件根本(不愿在这里辩论)。我只是不确定如何干净地回收线程并将其映射到另一个函数以进行新的运行
这是任务的用途。直接使用任务不是线程 – MikeSW
@MikeSW“任务”是异步完成的工作单元的抽象。 'Thread'是一种创建线程异步执行工作的机制。 '任务'确实有一些内置的机制,可以使线程在机制隐藏的情况下工作,但它们并不总是足够的。在某些情况下,您需要创建使用不同底层机制的其他工具。在这种情况下,他可能需要创建一个使用'Thread'创建'Tasks'的抽象。这并不意味着直接使用'Thread'是错误的。 – Servy
@MikeSW如果你直到最后读到这个问题,你才会明白你的评论是毫无意义的。 –