1
0
Task 对于每条消息。这将在线程池线程上运行代码,从而减少创建线程的开销。 你也可以做类似的事情 asynchronous delegates 如果.NET 4不是一个选项。但是,在这种情况下,代码会变得更复杂一些。这也将利用线程池,并节省为每条消息创建新线程的开销。 |
2
1
我为一个客户开发了这样的产品。该服务正在监测一些文件夹中的新文件,当发现这些文件时,这些文件将被读取、处理(打印在条形码打印机上)、存档和删除。
“discoverer”层发现文件并将文件名放入“filereader”层处理的列表中。“discoverer”层通过设置“filereader”层正在等待的事件来表示有新文件要处理。
在“文件读取器”层读取文件之后,使用线程池.QueueWorkItem处理文件内容。 处理完文件后,会将原始文件复制到存档并从原始位置删除。存档文件也被定期清理,以防止服务器被淹没。档案很适合故障排除。 在过去两年多的时间里,它已经在许多不同的环境中用于生产,并且被证明是非常可靠的。 |
3
1
我已经派了一个服务也这样做。我通过一个计时器进行轮询,该计时器的已用事件处理程序充当管理器,将新文件添加到队列中,并启动使用队列的可配置数量的线程。一旦处理完文件,它就会重新启动计时器。 每个线程(包括事件处理程序)都会捕获并报告所有异常。服务总是在运行,我使用一个单独的UI应用程序来告诉服务启动和停止计时器。这种方法已经坚如磐石,而且服务在几年的处理过程中从未崩溃过。 |
4
1
传统的方法是创建一组有限的线程(可能只有1个),并让它们监视阻塞队列。中的代码
你可以利用
1
|
lio · Java实例化Queueadt的实现 6 年前 |
Invictus97k · c编程、队列和模块问题 6 年前 |
Gameatro · 为什么malloc在函数内部调用时返回空指针? 6 年前 |
Ahsan Tarique · 队列实现错误C++[重复] 6 年前 |
aknosis · 为多个队列共享单个laravel数据库表 6 年前 |
T.Sh · Elastix自定义配置文件 6 年前 |