Maison > développement back-end > C++ > Comment puis-je exécuter efficacement plusieurs commandes dans .NET sans création répétée de processus ?

Comment puis-je exécuter efficacement plusieurs commandes dans .NET sans création répétée de processus ?

Barbara Streisand
Libérer: 2024-12-28 19:44:13
original
546 Les gens l'ont consulté

How Can I Efficiently Execute Multiple Commands in .NET without Repeated Process Creation?

Exécuter efficacement plusieurs commandes dans .NET

Dans le développement .NET, il est souvent nécessaire d'exécuter plusieurs lignes de commande sans créer de nouveaux processus à plusieurs reprises . Cette approche peut prendre du temps et être inefficace.

Pour résoudre ce problème, l'extrait de code fourni exploite une technique appelée redirection de processus. En redirigeant l'entrée standard du processus, vous pouvez écrire des commandes directement dans le processus sans créer un nouveau shell à chaque fois.

La méthode ExecuteCommand mise à jour ci-dessous implémente cette technique :

private void ExecuteCommand(string Command, int Timeout, Boolean closeProcess)
{
    Process p = new Process();
    ProcessStartInfo info = new ProcessStartInfo();
    info.FileName = "cmd.exe";
    info.RedirectStandardInput = true;
    info.UseShellExecute = false;

    p.StartInfo = info;
    p.Start();

    using (StreamWriter sw = p.StandardInput)
    {
        if (sw.BaseStream.CanWrite)
        {
            sw.WriteLine(Command);
        }
    }

    p.WaitForExit(Timeout);

    if (closeProcess == true) { p.Close(); }
}
Copier après la connexion

Dans cette méthode mise à jour, au lieu de transmettre la commande sous la forme "/C {command}" aux informations de démarrage du processus, elle redirige l'entrée standard du processus et utilise un StreamWriter pour écrire directement la commande. Cela vous permet d'exécuter plusieurs commandes sans créer plusieurs processus.

Pour gérer les "" dans la commande, utilisez des chaînes textuelles (préfixées par @) pour inclure les caractères littéralement dans la chaîne de commande.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal