J'ai une méthode send()
que je souhaite exécuter/appeler toutes les secondes. J'ai de la difficulté à l'appliquer. Jusqu'à présent, ce que je suis venu dans mon programme principal:Exécution de la méthode basée sur le temps en C#
bool done = false;
while (!done)
{
string vCurrent = RandomVoltage(220, 240) + "" + RandomCurrent(10, 13);
int seconds = RandomSec();
if (isEven(seconds))
send(vCurrent, "169.254.156.135");//send the string to the ip address
}
Donc, fondamentalement, j'essaie appeler ma méthode send()
pour chaque seconde du temps courant qui est encore, et je saute les secondes impaires, est ici comment je essayé à mettre en œuvre que mes RandomSec()
et isEven()
méthodes:
private static readonly object syncLock = new object();
public static int RandomSec()
{
lock (syncLock)
{
return DateTime.Now.Second;
}
}
public static bool isEven(int sec)
{
if ((sec % 2) == 0)
return true;
else return false;
}
maintenant, le problème est quand je lance la boucle while dans mon programme, ma méthode send()
envoie un grand groupe de cordes en 1 seconde, puis fait une pause pendant 1 seconde puis envoie un autre gros chignon ch de messages lorsque la seconde en cours est encore une fois. Comment puis-je obtenir mon programme pour exécuter ma méthode send()
seulement une fois toutes les secondes, de sorte que la méthode send()
envoie seulement 1 chaîne chaque seconde paire plutôt que disons 20/30 d'entre eux. Est-il possible pour moi d'appeler ma méthode send()
dans une boucle à temps contrôlé? Toute aide est grandement appréciée.
Merci d'avance.
Merci pour le tout le monde de réponses, ne peut pas croire à quel point j'ai raté. Désolé je suis nouveau à ce genre de choses. Merci encore. –