Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET Outlook加载项:“无法打开自定义表单。Outlook将改用Outlook表单。内存或系统资源不足”_C#_.net_Outlook Addin - Fatal编程技术网

C# .NET Outlook加载项:“无法打开自定义表单。Outlook将改用Outlook表单。内存或系统资源不足”

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

我正在写一个相当简单的Outlook 2013 addin,目的是定期循环查看约会项目,并对每个项目进行处理。我在BackgroundWorker中进行这项工作,以便不阻塞主UI

伪代码如下所示:

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等中读取内容,但没有修改它。