我是多线程编程的新手。以下是我想要实现的目标:
- > 创建一个连续读取数据库(或某种消息队列,请提出最佳建议)的 Windows 服务以获取表中的条目。
- > 在表中查找新条目
- > 如果有一个新条目,检查线程池中是否有足够的线程(不确定那是如何工作的),启动一个新线程并做一些工作。在高流量期间可能会有许多新条目,这就是为什么我需要让它成为多线程的原因。
谢谢大家。请帮我提供想法和链接。感谢您的帮助。
最佳答案
如果可能,您可能需要考虑让数据库在修改时发送信号。连续读取似乎是一种倒退的设计。如果您不想创建自己的服务,您可能希望使用 Windows Scheduling Services 来启动您的应用程序以读取数据库。但是,您将无法使用 ThreadPool 来限制并发操作的数量。但是如果你创建自己的服务,使用 ThreadPool类(class)非常简单。您可以简单地设置线程限制并保留 queuing基于数据库更新的工作项。也玩弄 SetMinThreads , 以保持线程活跃和可重用。
关于C# - 队列和多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1817799/