我正在处理设置为在经过一段时间后发生的超时,之后我想得到一个回调。现在我正在使用一个Timer
在被触发时自行处理的方法来执行此操作。
public class Timeouter
{
public void CreateTimeout(int timeout, Action onTimeout)
{
Timer t = null;
t = new Timer(_ =>
{
onTimeout();
t.Dispose();
}, new object(), timeout, Timeout.Infinite);
}
}
我有点担心这个计时器的资源使用,因为它可能会被非常频繁地调用,因此会设置很多计时器来触发一次并自行处理。考虑到计时器是一个IDisposable
,它会向我表明它确实使用某种昂贵的资源来完成它的任务。
- 我是否过于担心 的资源使用情况
Timer
,或者解决方案是否可以? - 我还有其他选择吗?最好有一个计时器并根据需要调整它的频率来启动和停止它以适应其中的几个超时?任何其他可能更轻量级的选项可以在给定的时间段后执行一次任务?