我正在使用Windows窗体应用程序来监视目录并将其中的文件移动到另一个目录.
目前它会将文件复制到另一个目录,但是当添加另一个文件时,它将以没有错误消息结束.有时它会在结束第三个文件之前复制两个文件.
这是因为我使用的是Windows窗体应用程序而不是控制台应用程序吗?有没有办法可以阻止程序结束并继续观看目录?
private void watch()
{
this.watcher = new FileSystemWatcher();
watcher.Path = path;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "*.*";
watcher.Changed += OnChanged;
watcher.EnableRaisingEvents = true;
}
private void OnChanged(object source, FileSystemEventArgs e)
{
//Copies file to another directory.
}
public void Dispose()
{
// avoiding resource leak
watcher.Changed -= OnChanged;
this.watcher.Dispose();
}
Run Code Online (Sandbox Code Playgroud) 我知道自Vista以来,C#无法将UI表单直接挂钩到Windows服务.这是在Microsoft网站上说明的.
我在这方面的问题是:"从用户界面到服务的最佳沟通方式是什么?"
我听说过远程处理,Web服务和直接TCP.还有其他方法吗?他们如何与前面提到的方法进行排名?他们实施起来有多复杂?
我的应用程序是用于Intranet,而不是Internet.微软平台将是双方的,因此互操作性不是一个因素,但速度是.我的意思是我想要在网络上获得最小的数据包.
TIA