C# .NET Outlook加载项:“无法打开自定义表单。Outlook将改用Outlook表单。内存或系统资源不足”
我正在写一个相当简单的Outlook 2013 addin,目的是定期循环查看约会项目,并对每个项目进行处理。我在BackgroundWorker中进行这项工作,以便不阻塞主UI 伪代码如下所示:C# .NET Outlook加载项:“无法打开自定义表单。Outlook将改用Outlook表单。内存或系统资源不足”,c#,.net,outlook-addin,C#,.net,Outlook Addin,我正在写一个相当简单的Outlook 2013 addin,目的是定期循环查看约会项目,并对每个项目进行处理。我在BackgroundWorker中进行这项工作,以便不阻塞主UI 伪代码如下所示: if (!Monitor.TryEnter(Lockobj)) return; var bw = new BackgroundWorker { WorkerReportsProgress = true }; bw.DoWork += (sender, e) => Worker(); bw.Run
if (!Monitor.TryEnter(Lockobj)) return;
var bw = new BackgroundWorker { WorkerReportsProgress = true };
bw.DoWork += (sender, e) => Worker();
bw.RunWorkerCompleted += bw_RunWorkerCompleted;
bw.ProgressChanged += bw_ProgressChanged;
bw.RunWorkerAsync();
public void static Worker() {
var application = Globals.ThisAddIn.Application;
var mapiNamespace = application.GetNamespace("MAPI");
var calendarFolder = mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
var outlookItems = calendarFolder.Items;
outlookItems.IncludeRecurrences = true;
outlookItems.Sort("[Start]");
foreach (var appointmentItem in outlookItems.OfType<AppointmentItem>())
{
DoThingWithItem(appointmentItem);
}
Monitor.Exit(Lockobj);
}
但是,当我启动这个后台工作程序时,它会运行一段时间,然后抛出一个错误,如消息框所示:自定义表单无法打开。Outlook将改用Outlook窗体。内存或系统资源不足
如何调试这个?是什么导致outlook认为它的内存不足?您是否正在打开/修改DoThingWithItem中的appointmentItem?我正在从它的ResponseStatus、Start、End、Subject、Body等中读取内容,但没有修改它。