Мой код является надстройкой MS Outlook и используется для создания календаря отсутствия для более чем 60 человек команды.Компания использует MS Exchange.
Я получаю их статус занятости / занятости с помощью этого кода:
var namespace = ThisAddIn.thisOutlookApp?.GetNamespace( "MAPI" );
var recp = namespace.CreateRecipient( personName );
var freeBusy = recp.FreeBusy( startDate, MinPerChar: 60, CompleteFormat: true );
Хотя этот файл работает, один вызов FreeBusy()
занимает около 300 миллисекунд.Для 60 человек и промежутка времени в три месяца это означает, что мой код занимает почти минуту.
Я также попробовал эту альтернативу:
recp.Resolve();
var exu = recp.AddressEntry.GetExchangeUser();
var freeBusy = exu.GetFReeBusy(...)
, но без разницы.Тот же код в VBA показывает ту же производительность.
Это трюк, чтобы ускорить этот вызов, или есть альтернативный способ получения информации о занятости, например, путем доступа к календарю других людей или путем разговора ссам сервер MS Exchange?