C#RDP在for循环后未连接
C# RDP not connecting after forloop
我目前正在使用 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");
}
}
我认为 for 循环不会影响连接。但是,您正在创建一个在任何情况下都不会终止的无限循环。这意味着您正在阻塞执行线程。
您不应该使用循环来轮询文件是否存在,这就是 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();
我目前正在使用 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");
}
}
我认为 for 循环不会影响连接。但是,您正在创建一个在任何情况下都不会终止的无限循环。这意味着您正在阻塞执行线程。
您不应该使用循环来轮询文件是否存在,这就是 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();