【发布时间】:2010-01-08 14:12:05
【问题描述】:
我希望我的程序持续等待触发器以执行下一个任务。
- 一种选择是池化:使用无限循环,例如而(真)
- 或者,TCP 是否侦听超时相对较高的端口。
我想知道这两种技术中的哪一种会更有效地保持我的应用程序存活?
我觉得执行 while(true) 会是一个杀手,而 tcp listen 可能是一个健康选项,因为 tcp listen 会使用硬件中断?
此外,在 .net winform 应用程序中,我们有 Application.Run() 方法可以使应用程序保持活动状态。如果有人知道这种方法在内部做什么,请分享。
PS:这里我已经考虑过 msmq 选项(相当于 tcp listen),但我不想依赖 msmq。
【问题讨论】:
-
关于“也”部分:请单独提出。
-
您还在等什么?如果您正在等待 TCP 连接,那么最好听,否则是可等待对象之一,例如AutoResetEvent,会更好。对于 WaitHandles,请参阅 yoda.arachsys.com/csharp/threads/waithandles.shtml
标签: c#