【发布时间】:2016-02-17 13:19:17
【问题描述】:
我正在使用 VSTO 在 C# 中为 Outlook 创建加载项。
在发送 MailItem 之前,将在发送事件中完成一些特殊任务。完成此任务后,将显示带有进度条的模态表单。这很好用。但是在显示进度条时,用户无法与 Outlook 交互。整个 Outlook 被冻结。 -> 我希望用户可以在要发送的 MailItem 上完成任务时与 Outlook 进行交互。
所以我为特殊任务创建了一个新线程,包括显示进度条。 以下步骤将在发送事件中完成:
如果任务已经完成,请检查布尔变量。
- 如果任务还没有完成,发送将被取消并且一个新的线程 将为任务创建并启动。
- 任务完成后,布尔变量将设置为 true(= 任务已完成)。
- 还会调用 Mailitem 的发送方法。
这也很好用。但是,带有进度条的模态表单不再是模态的了。用户可以与 Outlook 交互(好!)。但他也可以在任务运行和显示进度条时与 MailItem 交互(不好!)...
所以问题是,我怎样才能阻止 MailItem,将其设置为只读或其他方式以避免用户在显示进度条时修改 MailItem?
【问题讨论】:
标签: c# multithreading outlook vsto