Exécution de la fonction spécifiée, toutes les X secondes
J'ai un Windows Forms application écrite en C#. La fonction suivante vérifie à chaque fois que l'imprimante est en ligne ou pas:
public void isonline()
{
PrinterSettings settings = new PrinterSettings();
if (CheckPrinter(settings.PrinterName) == "offline")
{
pictureBox1.Image = pictureBox1.ErrorImage;
}
}
et les mises à jour de l'image si l'imprimante est hors ligne. Maintenant, comment puis-je exécuter cette fonction isonline()
toutes les 2 secondes alors quand j'ai débrancher l'imprimante, l'image affichée sur le formulaire (pictureBox1
) se transforme en un autre sans une relance de la demande ou de faire une vérification manuelle? (eg. en appuyant sur bouton "Actualiser" qui se déroule à la isonline()
fonction)
- l'interrogation n'est pas une bonne idée. Mieux à l'écoute pour une modification de l'état de notification si celle-ci existe.
- double possible de Exécuter une opération toutes les x secondes pour y minutes en c#
Vous devez vous connecter pour publier un commentaire.
Utilisation Système.De Windows.Les formulaires.Minuterie.
Vous pouvez appeler
InitTimer()
dansForm1_Load()
.new EventHandler
- elle encore nécessaire?Timer
objet semble avoir une configuration différente de nos jours. J'ai fait le travail à l'aide de:timer = new Timer(TimerCallback, null, 0, timeStepInMilliseconds)
+private static void TimerCallback(Object stateInfo)
.La plupart des débutants solution est:
Faites glisser un Timer à partir de la boîte à outils, de lui donner un Nom, définissez l'Intervalle, et le set "Activé" pour Vrai. Puis double-cliquez sur le Timer et Visual Studio (ou ce que vous utilisez) va écrire le code suivant pour vous:
Pas besoin de s'inquiéter à propos de le coller dans le mauvais bloc de code ou quelque chose comme ça.
Vous pouvez le faire facilement par l'ajout d'une Minuterie à votre formulaire (par le concepteur) et la valeur du Tick-fonction à exécuter votre isonline function).