我目前正在用 C#(我以前从未真正使用过)编写一些东西,其中涉及一个计时器System.Timers.Timer
触发 7 个针对 Oracle 数据库运行的查询。它被设计为在服务器上连续且无限期地运行。
查看 Windows 资源监视器中运行的进程时,线程数正在增加。每隔 10 秒,不到一个小时就达到了 230 个线程。我猜每次计时器触发时,它都会创建一个新线程,但我无法真正找出问题所在。我假设我不必在任务完成后显式结束线程。
但是,当我Thread.CurrentThread.Abort()
在最后一个查询完成工作后添加一个时,线程数保持在 15。此外,内存使用情况也好很多。
中止线程是正确的做法吗?感觉很不对劲,但它已经解决了问题。