我想将应用程序的“任务”和“事件”限制为一个线程,以避免线程同步。我该怎么办?这样做可能会遇到什么问题?
我正在制作一个使用事件和TPL任务的C#IO绑定应用程序。作为思想实验比什么都重要,我想知道是否有可能通过仅对我的所有Task使用一个线程来完全避免同步原语,例如锁和信号量。最后,我希望使用类似Node.js的用户代码在单个线程上运行,因此用户无需担心同步。
但是我意识到该模型不是.NET固有的,并且可能存在很多陷阱,我特别假设围绕第三方代码和事件。
我的第一个想法是将线程池限制为单个线程,但是我担心这会破坏某些本机或第三方功能。