C # RDP не подключается после forloop - PullRequest
0 голосов
/ 31 января 2019

В настоящее время я использую 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");
                    }
                }

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Вы не должны использовать цикл для опроса существования файла, для этого и нужен FileSystemWatcher.Вам нужно будет сделать что-то вроде этого.

var watcher= new FileSystemWatcher(b);
watcher.Filter = "t.txt";
watcher.Created += (sender, eventArgs) => MessageBox.Show("File Exists");

Я сделал несколько предположений о том, что находится в вашей переменной b, но дело в том, что наблюдатель будет следить за каталогом изменений, устанавливать фильтр для типов файлов, которые вы ищетеfor (он будет принимать подстановочные знаки).

Если вы хотите запретить выход из программы, не используйте бесконечный цикл, просто используйте Console.ReadKey или Console.ReadLine, чтобы не делать занятое ожидание.

Console.WriteLine("Press any key to exit.");
Console.ReadKey();
0 голосов
/ 31 января 2019

Не думаю, что циклы for влияют на соединение.Но вы создаете бесконечный цикл, который не заканчивается ни при каких обстоятельствах.Это означает, что вы блокируете поток выполнения.

...