我在 C# 中创建了一个 Word 2007 加载项项目,该项目在我的盒子和其他开发人员的盒子上运行良好。但是,当我们尝试将软件部署到空白框时,当我们启动后台线程时,Word 会严重崩溃(没有抛出异常)。
这是 Ribbon.cs 文件中的相关代码:
private void startThread()
{
StreamWriter fout = new FileInfo("C:\\startThread.txt").CreateText();
fout.WriteLine("startThread start");
fout.Flush();
try {
ThreadStart job = new ThreadStart(this.waitForSignal);
Thread thread = new Thread(job);
thread.Start();
fout.WriteLine("No Exceptions?");
}
catch
{
fout.WriteLine("caught something");
}
fout.WriteLine("startThread end");
fout.Flush();
fout.Close();
}
public void waitForSignal()
{
StreamWriter fout = new FileInfo("C:\\waitForSignal.txt").CreateText();
fout.WriteLine("entered waitForSignal");
fout.Flush();
fout.Close();
}
startThread()
从功能区的构造函数中调用。在我的盒子上运行时,这两个文件都是用所有的 WriteLines 创建的,除了“caught something”。在另一个盒子上运行时,会创建 startThread.txt 并输出除“caught something”之外的所有行,但不会创建 waitForSignal.txt,并且会出现 Microsoft 的“出现问题,您要发送错误消息”框。
我认为有一些安全问题拒绝 Word 启动新线程的能力,但我不知道如何改变它。
有谁知道这是否确实是问题以及我将如何解决它?或者,如果您看到其他可能导致问题的东西?