一个简单的问题,我需要在Outlook完成此文件夹的同步后加载数据(存储为收件箱文件夹中的存储项目)。我当前的代码:
newList.forEach((key, value) -> {
List<Double> xData = value.stream().map(Coordinates::getX).collect(Collectors.toList());
List<Double> yData = value.stream().map(Coordinates::getY).collect(Collectors.toList());
chart.addSeries(key, xData, yData);
});
我使用private Outlook.Explorer _currentExplorer;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
_currentExplorer = Application.ActiveExplorer();
_currentExplorer.Session.SyncObjects[1].SyncEnd += SyncEnd_Event;
// also tried:
//_currentExplorer.Session.SyncObjects.AppFolders.SyncEnd += SyncEnd_Event;
}
private void SyncEnd_Event()
{
MyAddin.LoadData();
}
是因为我发现它应该是“发送/全部接收”,但是我的SyncObjects[1]
从未被解雇。
非常感谢您的帮助!
答案 0 :(得分:0)
在您的情况下,SyncEnd事件将不会触发,因为引发事件的对象(SyncObject)是由编译器创建的隐式变量。一旦GC释放它,就不会触发任何事件。 将SyncObject对象存储在专用的全局(类)变量中,并在其上设置事件处理程序。