Windows mobile 当应用程序未激活时,FileSystemWatcher失败

Windows mobile 当应用程序未激活时,FileSystemWatcher失败,windows-mobile,filesystemwatcher,opennetcf,Windows Mobile,Filesystemwatcher,Opennetcf,我正在尝试让一个应用程序(用c#编写)在另一个应用程序后面的后台运行在WindowsMobile6.1设备上(带有一个filesystemwatcher)。我已经编写了一个简单的filesystemwatcher,只要它是当前应用程序(换句话说,只要你不在它之后打开另一个程序),它就工作得很好。即使在返回实例之后,filesystemwatcher也不再工作。它使用OpenNETCF,因为.NETCF不包括文件系统监视程序 有人知道为什么这样不行吗 任何帮助都将不胜感激 这是我的密码:

我正在尝试让一个应用程序(用c#编写)在另一个应用程序后面的后台运行在WindowsMobile6.1设备上(带有一个filesystemwatcher)。我已经编写了一个简单的filesystemwatcher,只要它是当前应用程序(换句话说,只要你不在它之后打开另一个程序),它就工作得很好。即使在返回实例之后,filesystemwatcher也不再工作。它使用OpenNETCF,因为.NETCF不包括文件系统监视程序

有人知道为什么这样不行吗

任何帮助都将不胜感激

这是我的密码:

    private void Form1_Load(object sender, EventArgs e)
    {

        OpenNETCF.IO.FileSystemWatcher f = new OpenNETCF.IO.FileSystemWatcher(@"c:\happydays", "*.*");
        f.IncludeSubdirectories = true;
        f.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite |
                       NotifyFilters.FileName | NotifyFilters.DirectoryName;

        f.Created += new FileSystemEventHandler(File_Created);                                  
        f.EnableRaisingEvents = true;
    }

    private void File_Created(object sender, OpenNETCF.IO.FileSystemEventArgs e)
    {
MessageBox.Show("File Created");
    }

我不确定您为什么会出现这种行为,但我可以猜测操作系统只是将文件通知消息发送给活动应用程序


SDF的
FileSystemWatcher
依赖于应用程序消息泵的运行,因为它在引擎盖下使用aygshell API,aygshell使用Windows消息进行调度(Microsoft的选择,而不是我的选择)。出于几个原因,我不喜欢这样做,因此我编写了一个名为
FileSystemMonitor
的替代方案,您可以在相同的名称空间和DLL以及
FileSystemWatcher
中找到它。IIRC,它的工作原理并不是100%相同,但考虑到我必须使用的文件系统API,我尽可能使它接近。

是的,正如我所说,它与FSW位于完全相同的DLL和命名空间中。是否可以为cf编写服务?谢谢。我们说话的时候,我正在测试显示器。结果出来了。它成功了。非常感谢您的帮助…OPENNETCF是我发现的一个更伟大的API。它允许我在CF中做以前无法做的事情。