À l'heure actuelle, j'ai une application Windows (C#) qui crache des rapports de longue durée. Chaque rapport extrait certaines informations de l'interface utilisateur pour limiter les rapports. Bien sûr, la création du rapport se passe sur un thread d'arrière-plan et j'ai besoin d'appeler correctement les différents contrôles pour obtenir des choses comme les index et les valeurs sélectionnés. Mais je ne pense pas que mon code semble bon et j'espérais qu'il y avait un meilleur modèle. Parce qu'il ya tellement de demandes de contrôles, j'ai fait les délégués génériques pour chaque type qui serait retourné:Nettoyer les motifs Invoke?
private delegate string StringDelegate();
private delegate int IntDelegate();
plus bas, il y a plusieurs instanciations de ces délégués:
private StringDelegate GetYearSelectedItem = new StringDelegate(cmbYearAsync);
YearAsync ressemble à ceci :
private string cmbYearAsync() {
return cmbYear.SelectedItem.ToString();
}
Et enfin, dans le code qui est sur un thread d'arrière-plan, voilà comment je reçois les valeurs:
cmbYear.Invoke(GetCmbYearSelectedItem);
Existe-t-il un moyen plus simple d'obtenir ces valeurs à partir d'un thread séparé?