2
Je fais de simples mises à jour de GUI sur une minuterie. Quelle méthode est préférable d'utiliser si je mets à jour un seul contrôle? MethodInvoker comme ceci:MethodInvoker vs Control.Invoke
this.Invoke((MethodInvoker)delegate
{
systemMode.Text = systemMode.ToString();
});
ou créer un contrôle invoquer comme ceci:
public void UpdateSystemMode()
{
if (systemMode.InvokeRequired)
{
UpdateSystemMode.Invoke(new
UpdateSystemModeDelegate(UpdateSystemMode));
}
else
{
systemMode.UpdateSystemMode();
}
}
De toute évidence, la méthode invocateur a moins de code à l'avant, mais on est la meilleure pratique?
Merci pour la réponse. Votre dernière ligne avait besoin du premier ';' retiré, cependant. – Jason
Attention, 'BeginInvoke' a une sémantique différente de' Invoke'! Et 'Control.Invoke' est censé être plus rapide si vous utilisez le type de délégué' MethodInvoker' plutôt que 'Action'. – Sven
@Sven, quelle est la différence entre la méthode Action et MethodInvoker for Invoke? O_o ils sont tous les deux sans paramètre et ont un type de retour vide. – Nagg