我测试了一个简单的异步FormRegionShowing事件处理程序
private async void MyForm_FormRegionShowing(object sender, System.EventArgs e)
{
await Task.Delay(3000);
}
当我在VS中调试此代码时,await命令正常运行。 FormRegionShowing事件仅触发一次,并且在电子邮件预览窗格中仅显示一个MyForm实例。但是,通过外接程序的安装程序将外接程序安装在测试计算机上时,FormRegionShowing事件将触发两次。结果,在预览窗格中显示了两个MyForm。我将Visual Studio 2015调试器附加到OUTLOOK进程上,这就是我所发现的。第一次触发事件时,程序在按下await Task.Delay(3000)命令后离开MyForm_FormRegionShowing方法。此后,立即再次触发FormRegionShowing事件。此时,等待Task.Delay(3000)命令完成。但是,由于事件被触发了两次,因此电子邮件预览窗格中会显示两个MyForm实例。你知道为什么会这样吗?谢谢。
答案 0 :(得分:0)
看起来该外接程序或窗格在最终用户计算机上注册了两次。我建议从头开始创建一个新的示例加载项,以确保问题不取决于窗格或加载项。