У меня есть код C #, который я выполняю на Visual Studio 2017. Моя цель - запустить несколько потоков параллельно и подключиться к различным IP-адресам через SSH, выполнить команду на этих устройствах и вернуть выходные данные на консоль.Пример подключения к одному такому устройству с IP: 192.168.46.126 выглядит следующим образом:
Thread myNewThread = new Thread(() => sendCommand("192.168.46.126", command));
myNewThread.Start();
Функция sendCommand выглядит следующим образом:
void sendCommand(string IPaddr, string command)
{
using (var sshClient = new SshClient(IPaddr, username, password))
{
sshClient.Connect();
sshClient.Runcommand(command); //Takes a lot of time to execute
}
}
sshClient.runCommand (команда)выполнение занимает много времени.Мне нужно запустить все эти потоки параллельно, чтобы подключиться к каждому устройству и вывести их состояния на консоль.В случае, если поток занимает слишком много времени, мне нужно иметь опцию тайм-аута.Я искал в Интернете, но у них, похоже, нет опции тайм-аута в функции RunCommand.Похоже, что единственная опция тайм-аута связана с функцией connect (), реализованной с помощью следующего кода:
client.ConnectionInfo.Timeout = TimeSpan.FromSeconds(10);
Можно ли как-то реализовать тайм-аут для строки кода runCommand?