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 :
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;
} |
Elle met plusieurs seconde à s'executer. La majeur partie de ce temps est utiliser par la ligne :
List<TaskItem> tacheItems = _taskBox.Items.OfType<TaskItem>().ToList();
Je ne vois pas comment faire pour réduire ce temps. Si l'un d'entre vous à une idée.
Je vous remercie pour le temps passé sur mon post.
Partager