none
Console.Readkey() RRS feed

  • Question

  • Bonjour,

    J'ai une console avec la ces fonctions pour l'ouvrir et la fermer :

     <DllImport("kernel32.dll")> Function AllocConsole() As Boolean
        End Function
        <DllImport("kernel32.dll")> Function FreeConsole() As Boolean
        End Function

    Mais à la fin, lorsque j'ai terminé, je veux appuyer sur une touche pour la fermer, donc j'utilise la fonction console.readkey()

    Console.WriteLine("Press any key to close console...")
            Console.ReadLine()
            FreeConsole()
    Quand je suis à console.readkey() ca lag, la souris ralentit pendant quelques secondes (mais sans erreur) Pourquoi ?

    dimanche 28 septembre 2014 11:14

Toutes les réponses

  • Bonjour,

    Je dois m'avouer un peu désorienté par la nécessité d'allouer et libérer la console par des fonctions non managées. Quel est l'avantage par rapport à un projet de type console tel que proposé tout prêt sous VS 2005 et suivants ?

    Pour ce qui est de la suite je crains qu'il n'y ait pas de réponse probante tant que la question et/ou les circonstances qui la motivent ne seront pas précisées davantage.

    Que signifie "ça lag" ?

    Le problème se pose-t-il pendant l'écriture du code ? Pendant l'exécution (run-time) ? Que signifie exactement la souris ralentit ? Le déplacement du curseur est moindre pour le même déplacement de la souris ? Ce qui laisserait supposer une forte activité du processeur et/ou du disque, que donnent les indicateurs de ce côté ? Pour le disque dur c'est vite vu il y a toujours un témoin dessus, pour le processeur il faut utiliser soit un utilitaire tout prêt (souvent inclus dans un produit plus complet), soit une fois qu'on est à l'aise avec ce genre de pratique une fonction de mesure d'activité. Je m'abstiendrai d'en proposer une, n'ayant pas joué avec.

    Je note que la question parle de ReadKey() mais que le code présenté contient ReadLine() à la place. L'un réagit à la première touche tandis que l'autre attend la touche d'entrée pour se terminer.

    dimanche 28 septembre 2014 15:06
  • Bonjour,

    Je ne vois pas d'où peut provenir votre problème... Avez-vous la possibilité de nous envoyer un petit projet qui reproduirait le problème afin que nous puissions investiguer ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    dimanche 28 septembre 2014 19:53
    Modérateur