J'ai créé un projet de complément Word 2007 en C# qui fonctionne correctement sur ma boîte et sur la boîte d'un développeur. Lorsque nous essayons de déployer le logiciel dans une boîte vide, Word plante brutalement (aucune exception n'est levée) lorsque nous démarrons un thread d'arrière-plan.Problèmes de démarrage d'un thread dans un complément de ruban Word 2007
Voici le code correspondant, dans le fichier 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()
est appelé à partir du constructeur du ruban. Lors de l'exécution sur ma boîte, les deux fichiers sont créés avec toutes les WriteLines sauf "attrapé quelque chose". Lorsqu'il est exécuté sur l'autre case, startThread.txt est créé et toutes les lignes sont sorties sauf "catch something" mais waitForSignal.txt n'est jamais créé et le message "il y a eu un problème, voulez-vous envoyer un message d'erreur" apparaît.
Je pense qu'il y a un problème de sécurité qui empêche Word de démarrer de nouveaux threads, mais je n'arrive pas à comprendre comment je changerais cela.
Est-ce que quelqu'un sait si c'est vraiment le problème et comment je le réparer? Ou si vous voyez quelque chose d'autre qui pourrait causer le problème?