| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
| |
 | Model Based Systems Engineering: Eine perfekte Methode zur Systementwicklung, auch für Startups und KMUs im Maschinen- und Anlagenbau, ein Whitepaper
|
Autor
|
Thema: Multithreading in SE (605 mal gelesen)
|
max-300 Mitglied
 Beiträge: 8 Registriert: 07.06.2006
|
erstellt am: 07. Jun. 2006 16:03 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, ich habe ein Programm (VB6) laufen, welches eine grosse Anzahl von dft Dateien konvertiert. Oft kommt es jedoch vor, dass das Öffnen einer dft in SE sehr lange dauert. Ich möchte deshalb diese Aufgabe in einem eigenen Prozess (Multithreading) laufen lassen. Hat jemand Erfahrung, wie man sowas in VB einbindet bzw. gibt es hierfür Tutorials? Vielen Dank für eure Hilfe. Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 07. Jun. 2006 16:23 <-- editieren / zitieren --> Unities abgeben:          Nur für max-300
Moin, die Gesamtzeit fuer das Konvertieren wird laenger bleibt zumindest gleich: es ist nur ein Prozessor vorhanden (vermutlich). Ausserdem: SE ist IMHO nicht reentrant also nicht multitasking faehig das wuerde bedingen das jede der Tasks ein eigenes SE starten muesste (was nebenbei geht) und das wiederum duerfte ab einer gewissen Anzahl zu erheblichem Paging fuehren Meine 0,02 cts modeng Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BJ Mitglied PLM System Administrator
 
 Beiträge: 488 Registriert: 20.12.2002
|
erstellt am: 07. Jun. 2006 16:23 <-- editieren / zitieren --> Unities abgeben:          Nur für max-300
Hallo, echtes Multithreading geht in VB6 nicht - einzige Abhilfe: DoEvents Eventuell kannst du deinen Code solange anhalten, bis das Dok geöffnet ist (zB. Do/Loop-Schleife mit Abfrage). Gruß, BJ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
max-300 Mitglied
 Beiträge: 8 Registriert: 07.06.2006
|
erstellt am: 07. Jun. 2006 16:33 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, erstmal danke für die schnellen Antworten. BJ: Wie kann ich nen Event-Listener in VB implementieren? Ich hab SE als ADO-Objekt eingebunden. Sobald der Öffnen Befehl (set ObjSolEdgDoc = ObjSolEdgApp.Documents.Open(tmpfile)) ausgeführt wird, stoppt der Debugger bis das ganze File in SE offen ist. Das ist mein Problem - während dieser Zeit würde ich gerne UserClicks abfangen und ne Meldung ausgeben. Danke und Grüße Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BJ Mitglied PLM System Administrator
 
 Beiträge: 488 Registriert: 20.12.2002
|
erstellt am: 07. Jun. 2006 17:38 <-- editieren / zitieren --> Unities abgeben:          Nur für max-300
so zB: Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds&) bolOK = False Do DoEvents '-> hier was zu tun ist Sleep 50 'damit Events verarbeitet werden können Loop Until bolOK = True Gruß, BJ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
max-300 Mitglied
 Beiträge: 8 Registriert: 07.06.2006
|
erstellt am: 10. Aug. 2006 07:47 <-- editieren / zitieren --> Unities abgeben:         
Melde mich nach längerer Zeit nochmal mit der Lösung: Ich habe ne ActiveX-Exe entworfen und arbeite damit. Das funzt prima und mein Prog hat den Kopf frei für andere Sachen, während das Filehandling über die ActiveX-Exe abgewickelt wird. Viele Grüße Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |