J'appelle deux minuteurs dans un WinForm pour différents processus, tous les deux utilisent le même format try-catch. Cela fonctionne bien pendant les premiers jours, puis commence à devenir lent. Je peux voir une certaine charge sur le serveur. Mon événement de minuterie est-il correct? Cet événement ne met-il pas beaucoup de poids?Comment savoir si mon minuteur Windows fonctionne parfaitement et ne cause aucune fuite de mémoire
Dans mon try-catch, je n'arrête la minuterie que si mon code attrape une exception. Je doute sinon d'exception, et mon temps n'est pas arrêté. Si je démarre la minuterie la deuxième fois, cela mettra plus de charge ou sa réinitialisation. S'il vous plaît donnez votre précieux conseil. Merci beaucoup d'avance.
Mon code est ci-dessous.
minuterie 1 Tick:
private void timerMain_Tick(object sender, EventArgs e)
{
try
{
// Retrieve some status and Update
}
catch (Exception ex)
{
timerMain.Stop();
MessageBoxHelper.ShowException(LanguagePack.LanguageHelper.GetString(GlobalParameters.Language, "Error_ExecutionEx"), ex);
}
finally
{
timerMain.Start();
}
}
minuterie 2 Tick:
private void timerWorkStep_Tick(object sender, EventArgs e)
{
try
{
// Retreive Some value from web proxy and set to label
}
catch (Exception ex)
{
timerWorkStep.Stop();
MessageBoxHelper.ShowException(LanguagePack.LanguageHelper.GetString(GlobalParameters.Language, "Error_ExecutionEx"), ex);
}
finally
{
timerWorkStep.Start();
}
}
Il ne semble pas que quelque chose ne va pas dans la configuration de la minuterie. Il est possible que toute fuite de mémoire qui peut se produire existe dans tout ce que vous faites dans la partie try de votre code. Qu'est-ce qui vous a fait penser que la minuterie est le problème? –
Merci pour votre commentaire. Dans mon cas, j'ai appelé finalement timer.start même si je n'arrête pas le timer sauf l'exception. donc je me suis senti, il peut être plus de boucle et minuterie exécutera plusieurs instances. – Mdyahiya
Si vous voulez que la personne à qui vous répondez soit notifiée, vous devez les mentionner comme suit: @ninjacoder –