我有一个特定的数据库,我需要每小时检查一次。我想分配一个单独的线程,每 3600 秒进行一次检查,但后来我突然意识到我要分配一个整个线程,该线程将在等待(睡眠)时间的 99.9% 时处于空闲状态。有没有更合理的方法来制作这样的检查机制,而不必专门为它使用整个线程?有没有办法在线程空闲时将其资源重定向到更重要的任务?这是一个示例代码:
class Program
{
static void CheckDataBase()
{
//... some code
}
static void Main(string[] args)
{
Thread DataCheck = new Thread(CheckDataBase);
DataCheck.Start();
//... some code
}
}
我还有一个小问题。当单击按钮时,wpf 或表单程序如何理解?是否有某种机制可以每毫秒检查按钮是否被按下?据我所知,那里调用了一个方法委托,它在按下的那一刻实现了按钮逻辑,没有无限循环形式的中介,还是我错了?如果是这样,它是如何完成的?
当线程挂起睡眠时,它不使用处理器资源。好吧,它几乎从不使用它,因为线程仍然占据操作系统内部表中的一行,并且操作系统会定期检查这些表并分析是否该启动线程。并且在这里存储甚至停止的流占用。但是你必须去做,因为没有其他方法可以做到。