Bonjour,
Je vous sollicite concernant un problème de lenteur dans une fonction.
Pour vous mettre dans le contexte, cette fonction est implémentée dans un AddIn Outlook. Elle est chargée de vérifier la présence d'une tâche dans la liste des tâches.
La voici :
Elle met plusieurs seconde à s'executer. La majeur partie de ce temps est utiliser par la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 public int VérifierPrésenceTache(object Item) { _listeTâches.Clear(); List<TaskItem> tacheItems = _taskBox.Items.OfType<TaskItem>().ToList(); Regex regex = new Regex(@"^[A-Z][0-9]{6}$"); if (Item is TaskItem) { if (regex.IsMatch(((TaskItem)Item).Subject.Substring(0, 7)) || ((TaskItem)Item).Subject.Length < 7) { return 999; } _listeTâches = tacheItems.FindAll(t => t.Subject.ToUpper().Contains(((TaskItem)Item).Subject.ToUpper())); } else if (Item is AppointmentItem) { _listeTâches = tacheItems.FindAll(t => t.Subject.ToUpper().Contains(((AppointmentItem)Item).Subject.ToUpper()) || ((AppointmentItem)Item).Subject.ToUpper().Contains(t.Subject.ToUpper())); } return _listeTâches.Count; }Je ne vois pas comment faire pour réduire ce temps. Si l'un d'entre vous à une idée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part List<TaskItem> tacheItems = _taskBox.Items.OfType<TaskItem>().ToList();
Je vous remercie pour le temps passé sur mon post.
Partager