我编写了一个非常基本的基于HTTP的服务器程序,它在我的计算机后台运行,允许我从Android自动执行各种任务(通过Tasker中的HTTP请求)。这一切都很好(禁止this problem),除了超过大约30分钟的不活动后,应用程序最终入睡,好像它被分流内存,并花了很长时间才醒来当它收到HTTP请求或我尝试恢复窗口并与UI交互时。
我正在使用System.Net.HttpListener
来实现服务器(使用对BeginListen
的异步调用)。我该如何保持它的脚趾?
答案 0 :(得分:3)
您的进程内存是否可能被换出到磁盘?也许写一个小监视器任务,每隔5分钟就会ping一次?请注意,这也可用于确保它仍在运行 - 如果它已关闭,它可以通过电子邮件发送给您,例如:)
答案 1 :(得分:2)
您的操作系统(Windows XP / Seven / Server 2008 ...)和发行版是什么? (Home / Pro / SBS ......)?
尽量优先考虑您的流程(如实时)。
您还可以尝试每10分钟执行一次任务...
答案 2 :(得分:1)
也许你可以做另一个线程并定期检查你的HttpListerner实例 IsListening 吗?
答案 3 :(得分:1)
看起来问题描述缺少提及实际问题本身。在Windows应用程序上不进入睡眠模式。非活动应用程序可能会被交换,但在收到请求时不应该花费很长时间。 在.Net 2中,由于长时间不活动导致监听器对象本身或关联对象的垃圾收集,我注意到了类似的行为。尝试保持监听器对象的静态引用。这可能会有所帮助。