我有一个Outlook 2007加载项,可以向日历项添加信息。我遇到了一个问题,如果打开一个旧的Calendar Invite包含不再有效的Exchange用户,Outlook会在尝试查找联系人时挂起大约90秒。 (在这种情况下,Outlook以缓存模式运行)
我试图找出是否有办法异步访问Exchange用户的电子邮件,或者检测用户是否被删除,并且只是跳过它。基本上,任何阻止UI挂起一整半的东西。
AddressEntry ae = appointmentItem.Recipients[0];
ExchangeUser eu = ae.GetExchangeUser();//hangs here if user is not in cached address book
答案 0 :(得分:0)
我尝试使用带有RDO的Redemption库来访问该属性,并查看它在这种情况下的反应。 请参阅http://www.dimastr.com/redemption/并查找“RDORecipients对象集合”。
答案 1 :(得分:0)
救赎永远不是一个坏主意 - 它是一个非常好的图书馆。
另一种选择是在另一个线程上调用GetExchangeuser()。这样可以避免阻塞。当然,您需要确定在这种情况下要做什么 - 显示“请稍候”对话框或让用户在通话期间执行其他操作。