Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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# 在Word 2007功能区加载项中启动线程时出现问题_C#_Multithreading_Ms Word_Ribbon - Fatal编程技术网

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

C# 在Word 2007功能区加载项中启动线程时出现问题,c#,multithreading,ms-word,ribbon,C#,Multithreading,Ms Word,Ribbon,我在C#中创建了一个Word 2007插件项目,该项目在我和一个开发伙伴的盒子上运行良好。但是,当我们尝试将软件部署到一个空白框时,Word在启动后台线程时会严重崩溃(没有引发异常) 以下是Ribbon.cs文件中的相关代码: private void startThread() { StreamWriter fout = new FileInfo("C:\\startThread.txt").CreateText(); fout.WriteLine("startThread s

我在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的“出现问题,是否要发送错误消息”框

我认为存在一些安全问题,使Word无法启动新线程,但我不知道如何改变这一点


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

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