我当前正在使用Microsoft Terminal Services Client,它的工作原理惊人,并且可以完成我想要的工作。但是我遇到了一个小问题,事实证明很难解决。我正在尝试连接到rdp,然后不断扫描文件是否存在。但是,当我执行for循环(在它调用rdp进行连接之后)时,它无法连接。这是我的代码:
axMsTscAxNotSafeForScripting1.Server = "0.0.0.0";
axMsTscAxNotSafeForScripting1.UserName = "Test";
IMsTscNonScriptable secured = (IMsTscNonScriptable)axMsTscAxNotSafeForScripting1.GetOcx();
secured.ClearTextPassword = "c";
axMsTscAxNotSafeForScripting1.Connect();
Thread.Sleep(2000);
for(; ; )
{
if (File.Exists(b + "t.txt"))
{
MessageBox.Show("File Exists");
}
}
答案 0 :(得分:0)
我认为for循环不会影响连接。但是,您正在创建一个无限循环,该循环在任何情况下都不会终止。这意味着您正在阻塞执行线程。
答案 1 :(得分:0)
您不应该使用循环来轮询文件的存在,这就是FileSystemWatcher
的目的。您需要执行以下操作。
var watcher= new FileSystemWatcher(b);
watcher.Filter = "t.txt";
watcher.Created += (sender, eventArgs) => MessageBox.Show("File Exists");
我对b
变量中的内容进行了一些假设,但要点是,观察者将监视目录中的更改,为要查找的文件类型设置过滤器(它将接受通配符)。
如果您想防止程序退出,请不要使用无限循环,而只需使用Console.ReadKey
或Console.ReadLine
,这样您就不必进行繁忙的等待。
Console.WriteLine("Press any key to exit.");
Console.ReadKey();