Aus einem Addin heraus wird eine Form aufgerufen. Darauf gibt es ein Button, wo bei Klick
eine Schleife ausführt wird:
Bekanntes Problem:
Die ProgressBar zeigt vor Beginn der Schleife 0%, der Inventor rödelt vor sich hin und wenn die Schleife fertig ist, zeigt die ProgressBar plötzlich 100% an.
Allgemein gibt es für dieses Problem ja den BackgroundWorker. Aber wenn ich die Schleife in BackgroundWorker_DoWork packe, hält der Inventor nicht mehr lange durch und schmiert bald ab.
Thread-Übergreifender Zugriff bei "oDoc = inventorApp.Documents.get_ItemByName(Datei)" ?
Als Möglichkeit fällt mir nur ein, mir am Anfang von BackgroundWorker_DoWork den Inventor zu ziehen:
(also so etwa, sinngemäß...)
Code:
private void BackgroundWorker_DoWork(...)
{
_inventorApp = System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application") as Inventor.Application;
foreach (string Datei in DateiListe)
{
Inventor.Document oDoc;
oDoc = _inventorApp.Documents.get_ItemByName(Datei); //
// mach was mit der Datei
//
BackgroundWorker.ReportProgress(1);
}
}
Ich habe das so noch nicht getestet. Hat das schonmal jemand von Euch gemacht?
Gruß,
Christoph
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP