Beste medeTweakers!,
Ik heb een programma die ik kan aansturen met verschillende functies geschreven in c++
Hiervoor heb ik DLL geschreven omdat de taal waar ik het in schrijf C# is.
Tot nu toe werkt alles, ik kan een instantie vna het programma opstarten, ik kan alle instructies uitvoeren etc.
Maar nu is er een instructie (import) die een file moet importeren met miljoenen regels, wat op zijn beurt weer ellendenlang duurt.. (lees 60+ sec)
en nu voel je het aankomen, dan gaat uiteraard de UI zichzelf locken..
Mijn eerste solution was, om gewoon alle instructies vanuit een backgroundworker te doen, dit werkte prima, maar niet geheel naar mijn wens.
Wat ik nu wil:
Ik wil graag vanuit de UI, functies kunnen aanroepen (bijvoorbeeld het opstarten van het programma etc) en vanuit een aparte thread wil ik die `import` functie aanroepen.
Kan ik (en hoe) dit realiseren?
Ik heb de volgende test gedaan:
2 dll's gemaakt, en via de een het programma opstarten en via een functie de pointer achterhalen van "pApp"
om via een ander dll de volgende functie aan te roepen:
pApp->ShowWindow(flag);
Dit werkte, maar wanneer ik dit ga doen in een andere thread,lukt dit op geen enkele manier
(die mij bekend is..)
Schijnbaar gaat dit niet lukken vanuit een andere thread dan waar het programma aangeroepen is.
Weet iemand hier een oplossing voor? Of een andere manier op hoe ik dit beter kan doen?
Overigens kleine info:
Ik ben pas enkele weken geleden begonnen met C#, dus ik weet nog niet geheel van alle mogelijkheden af.
Mvg
Erwin
Ik heb een programma die ik kan aansturen met verschillende functies geschreven in c++
Hiervoor heb ik DLL geschreven omdat de taal waar ik het in schrijf C# is.
Tot nu toe werkt alles, ik kan een instantie vna het programma opstarten, ik kan alle instructies uitvoeren etc.
Maar nu is er een instructie (import) die een file moet importeren met miljoenen regels, wat op zijn beurt weer ellendenlang duurt.. (lees 60+ sec)
en nu voel je het aankomen, dan gaat uiteraard de UI zichzelf locken..
Mijn eerste solution was, om gewoon alle instructies vanuit een backgroundworker te doen, dit werkte prima, maar niet geheel naar mijn wens.
Wat ik nu wil:
Ik wil graag vanuit de UI, functies kunnen aanroepen (bijvoorbeeld het opstarten van het programma etc) en vanuit een aparte thread wil ik die `import` functie aanroepen.
Kan ik (en hoe) dit realiseren?
Ik heb de volgende test gedaan:
2 dll's gemaakt, en via de een het programma opstarten en via een functie de pointer achterhalen van "pApp"
om via een ander dll de volgende functie aan te roepen:
pApp->ShowWindow(flag);
Dit werkte, maar wanneer ik dit ga doen in een andere thread,lukt dit op geen enkele manier
(die mij bekend is..)
Schijnbaar gaat dit niet lukken vanuit een andere thread dan waar het programma aangeroepen is.
Weet iemand hier een oplossing voor? Of een andere manier op hoe ik dit beter kan doen?
Overigens kleine info:
Ik ben pas enkele weken geleden begonnen met C#, dus ik weet nog niet geheel van alle mogelijkheden af.
Mvg
Erwin