ssh.net c# runcommand problème
Je suis en utilisant Renci.SshNet en c# sur le framework 3.5 et l'exécution d'une commande sur la machine unix comme ci-dessous.
string host = "localhost";
string user = "user";
string pass = "1234";
SshClient ssh = new SshClient(host, user, pass);
using (var client = new SshClient(host, user, pass))
{
client.Connect();
var terminal = client.RunCommand("/bin/run.sh");
var output = terminal.Result;
txtResult.Text = output;
client.Disconnect();
}
chaque chose fonctionne bien, ma question ici est "Est-ce qu'il ne faut pas attendre pour le client.RunCommand à terminer" Mon prog n'a pas besoin d'une sortie à partir d'unix, et donc je ne veux pas attendre le RunCommand à la fin. Cette commande a fallu 2 heures pour exécuter donc voulu éviter que les temps d'attente pour mon application.
Vous voulez tout le
Pourquoi, dans la mi-2014 êtes-vous limité .NET 3.5?
Je veux que mes utilisateurs de continuer à utiliser les autres domaines d'application, au lieu d'attendre pendant 2 heures à compléter. Je suis limité pour l'instant à 3,5 mais pouvez la mettre à jour .net 4.
RunCommand()
s'exécute pour être en mesure de fermer votre application ou vous voulez éviter que votre application contre le gel pendant l'exécution?Pourquoi, dans la mi-2014 êtes-vous limité .NET 3.5?
Je veux que mes utilisateurs de continuer à utiliser les autres domaines d'application, au lieu d'attendre pendant 2 heures à compléter. Je suis limité pour l'instant à 3,5 mais pouvez la mettre à jour .net 4.
OriginalL'auteur atif | 2014-08-06
Vous devez vous connecter pour publier un commentaire.
Comme je suppose SSH.NET ne pas exposer un vrai asynchrone de l'api, vous pouvez faire la queue
RunCommand
sur le pool de threads:Remarque si vous utilisez ce à l'intérieur de WPF ou WinForms, alors vous aurez besoin pour
txtResult.Text = terminal.Result
avecDispatcher.Invoke
ouControl.Invoke
, respectivement.Droit, ne l'a pas remarqué. Merci.
ça a très bien fonctionné, aucune idée de comment la mise à jour de la zone de texte valeur après l'opération terminée... Répartiteur.Invoquer n'est pas disponible pour les formulaires web...
WebForms ou WinForms?
Juste assez, de ne pas donner beaucoup de pensée 🙂
OriginalL'auteur Yuval Itzchakov
Ce sujet
OriginalL'auteur Jakub Pawlinski