Dans ce post, il existe une manière très intéressante de mettre à jour les threads de l'interface utilisateur à l'aide d'une méthode d'extension statique. Ce que je veux faire, est de faire une version générique, donc je ne suis pas contraint par un contrôle. Cela me permettrait de faire ce qui suit par exemple (parce que je ne suis pas contraint plus à être juste un contrôle)Création de la méthode d'extension Générique
this.progressBar1.InvokeIfRequired(pb => pb.Value = e.Progress);
J'ai essayé ce qui suit:
public static void InvokeIfRequired<T>(this T c, Action<T> action) where T : Control
{
if (c.InvokeRequired)
{
c.Invoke(() => action(c));
}
else
{
action(c);
}
}
Mais j'obtenir ce qui suit erreur que je ne suis pas sûr de savoir comment réparer. Quelqu'un a des suggestions?
Erreur 5 Impossible de convertir l'expression lambda de type 'System.Delegate' parce qu'il est pas un type de délégué
En fait ... à la recherche d'un peu plus près, il me semble obtenir l'erreur sur le premier exemple de code aussi ... bien que je suis en train de compiler pour .NET 4.0 pour le moment. – Ian