C# Windows Mobile 6.5.3和Thread.Sleep

C# Windows Mobile 6.5.3和Thread.Sleep,c#,windows,multithreading,mobile,sleep,C#,Windows,Multithreading,Mobile,Sleep,我正在使用Windows Mobile 6.5.3为摩托罗拉手持设备构建和应用程序,我需要在后台运行一个线程,每X秒进行一次检查 目前看起来是这样的: public static void Start() { while(validate()) { // do something Thread.sleep(interval); } } 我的问题是,由于线程仍在使用内存,因此这会占用大量资源 有更好的方法吗 答案可能使用多个线程,

我正在使用Windows Mobile 6.5.3为摩托罗拉手持设备构建和应用程序,我需要在后台运行一个线程,每X秒进行一次检查

目前看起来是这样的:

public static void Start()
{
     while(validate())
     {
         // do something
         Thread.sleep(interval);
     }
}
我的问题是,由于线程仍在使用内存,因此这会占用大量资源

有更好的方法吗


答案可能使用多个线程,也可能不使用多个线程,我只想每X秒执行一个特定任务。

当您没有其他事情要做时,使用计时器以设定的间隔运行一些代码,而不阻塞线程。

您是否介意扩展您关于“不阻塞线程”的想法?@Hrodger有什么可以扩展的?您创建了一个计时器,它几乎不需要时间,此时线程可以继续执行任何操作,并且计时器将负责执行您告诉它以设置的时间间隔运行的代码。它正是你所需要的。无论你做什么,它都会使用一些内存。托管线程提交1MB的堆栈,但对于一个简单的Sleep()循环,实际分页的堆栈数量非常小。与“做点什么”相关的代码和数据可能会添加到这一点上。Sleep()线程使用了多少RAM内存?如果您只有一个休眠线程,那么您可能不关心页面文件提交。@MartinJames-Windows Mobile甚至有页面文件吗?