代码之家  ›  专栏  ›  技术社区  ›  Ryan Ahearn

在Word 2007功能区加载项中启动线程时出现问题

  •  0
  • Ryan Ahearn  · 技术社区  · 15 年前

    我在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() 从功能区的构造函数调用。在“我的盒子”上运行时,这两个文件都是使用所有写线创建的,除了“捕获的东西”。在另一个框上运行时,将创建startThread.txt,并输出除“捕获某些内容”之外的所有行,但从未创建waitForSignal.txt,并显示Microsoft的“出现问题,是否要发送错误消息”框。

    有人知道这是否真的是问题所在,我将如何解决它吗?或者如果您看到其他可能导致问题的原因?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Ryan Ahearn    15 年前

    原来我的功能区代码需要.NET 2.0 Service Pack 2,而用户的计算机只安装了.NET 2.0 Service Pack 1。微软认为,对同一版本的service pack进行更改会产生不兼容的代码。