适用于:Outlook 2013 | Outlook 2016
尽可能多地将 MAPI_DEFERRED_ERRORS 标志传递给方法调用。 许多 MAPI 方法调用已优化为接受此标志,导致提供程序推迟请求的任务,直到可以同时执行多个任务,或者你无法再等待结果。
例如,如果将MAPI_DEFERRED_ERRORS传递给 IMsgStore::OpenEntry 以打开文件夹,则可以推迟文件夹的打开和可能的远程调用,直到你进行另一个调用(例如对文件夹的 GetHierarchyTable 或 GetProps 方法的调用)。 GetHierarchyTable 和 GetProps 都需要从服务提供程序返回数据,这是必须立即执行的任务。
延迟处理的另一种方法是根本不进行调用。 通过了解用户以及用户何时可以感觉到资源消耗或处理时间,你可以确定何时进行呼叫有意义。 可以通过在用户不注意到或根本不进行调用时进行调用来提高性能。
例如,请考虑每秒从移动大量消息的消息存储收到多个通知的情况。 将显示进度指示器,指示操作完成百分比。 在几秒钟后,用户通常不会认为此操作很慢。 因此,如果要更新进度指示器,则在开始移动操作后至少四秒后不要进行任何更改。 在操作速度较快的常见情况下,这将节省时间,并在操作速度缓慢时及时通知用户。