• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

End function

Status
Niet open voor verdere reacties.

Sebastiaan84

Gebruiker
Lid geworden
30 jun 2008
Berichten
22
Hallo,

Is het mogelijk om een functie te laten stoppen terwijl je in een andere functie bezig bent?

Dus:
FunctionEEN(..)
...
End Function


FunctionTWEE(..)
....
STOP FunctionEEN
....
End Function

Alvast bedankt.

Groeten,
Sebastiaan
 
Sebastiaan84, 2 functies kunnen nooit echt gelijktijdig draaien! Als je de 2e functie aanroept vanuit de 1e, zal de 1e sowieso onderbroken worden. Als je dan vervolgens niet wilt dat de 1e z'n werk afmaakt, zal je in die 1e moeten testen op het resultaat van de 2e om vervolgens via een Exit Function de functie te verlaten.

Wat is de aanleiding van deze vraag?

Groet, Leo
 
Hallo Leo,

Bedankt voor je reactie! De aanleiding van mijn vraag was dat ik 2 recurrente functies gebruik die elkaar kunnen aanroepen, onder bepaalde voorwaarde. Echter als de informatie die ik meegeef te groot wordt dan loopt het programma 'out of stack'.

Dit gebeurt op een moment dat in de ene functie de andere wordt aangeroepen (dus alleen als de informatie te groot wordt). Daarom dacht ik dat doordat ze elkaar aanroepen het werkgeheugen vol was en dat de fout dus kwam doordat beide programma's nog liepen.

Mochten er nog suggesties of tips zijn hoor ik het graag.

Groeten,
Sebastiaan
 
Laatst bewerkt:
Nog een vraag. Zou je misschien hier een voorbeeld van kunnen geven?

"Als je dan vervolgens niet wilt dat de 1e z'n werk afmaakt, zal je in die 1e moeten testen op het resultaat van de 2e om vervolgens via een Exit Function de functie te verlaten."

Want ik wil inderdaad dat eerste functie stopt in plaats van dat hij wordt onderbroken zo gauw als de tweede wordt aangeroepen. Maar zie niet hoe je dit doet.

Alvast bedankt.

Groeten,
Sebastiaan
 
Nog een vraag. Zou je misschien hier een voorbeeld van kunnen geven?

"Als je dan vervolgens niet wilt dat de 1e z'n werk afmaakt, zal je in die 1e moeten testen op het resultaat van de 2e om vervolgens via een Exit Function de functie te verlaten."

Want ik wil inderdaad dat eerste functie stopt in plaats van dat hij wordt onderbroken zo gauw als de tweede wordt aangeroepen. Maar zie niet hoe je dit doet.

Alvast bedankt.

Groeten,
Sebastiaan

Een simpel voorbeeld.
In bijgevoegd bestand zit een macro (macro1).
Zodra je deze opstart, wordt macro2 opgestart en verschijnt de vraag of er verder moet worden gegaan met macro1.

Klik je op JA, dan verschijnt de melding dat de macro verder gaat.
Klik je op NEE, dan stopt de macro.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Bedankt voor jullie reacties! Ik zal er morgen even op reageren. Op het moment heb ik even geen tijd namelijk. Ik heb gezocht hoe ik het andere topic kon sluiten, maar weet niet hoe dat werkt. Heb daar nu op vraag opgelost gedrukt zodat niemand meer zal reageren, maar die andere kan inderdaad weggegooid worden.

Groeten,
Sebastiaan
 
Laatst bewerkt:
Zoiets bedoel ik inderdaad met de macro. Echter ligt het bij mij iets gecompliceerder. De funtie moet eigenlijk tegelijk worden afgesloten op het moment dat een andere wordt aangeroepen. Dit komt omdat ik een recurrent programma heb die steeds verderzoekt. Echter als ik het programmer zoals de bovenstaande macro, stopt hij pas op het moment dat hij weer in de eerste functie komt. In de tijd dat hij weer terug is neemt hij in macro 2 dus de stack space mee van macro 1.

Ik hoop dat iemand nog een andere oplossing heeft.

Groeten,
Sebastiaan
 
Zoiets bedoel ik inderdaad met de macro. Echter ligt het bij mij iets gecompliceerder. De funtie moet eigenlijk tegelijk worden afgesloten op het moment dat een andere wordt aangeroepen. Dit komt omdat ik een recurrent programma heb die steeds verderzoekt. Echter als ik het programmer zoals de bovenstaande macro, stopt hij pas op het moment dat hij weer in de eerste functie komt. In de tijd dat hij weer terug is neemt hij in macro 2 dus de stack space mee van macro 1.

Ik hoop dat iemand nog een andere oplossing heeft.

Groeten,
Sebastiaan

Als de stackspace wordt meegenomen dan kan je de variabele toch aanpassen om de stack leeg te maken?

Met vriendelijke groet,


Roncancio
 
Heb je overigens hier en hier al gekeken.
Hierin staat info over de out of stack error en hoe je die kunt voorkomen.

Met vriendelijke groet,


Roncancio
 
Misschien is het een idee om het programma weer te laten zien zodat het wat concreter wordt. De bedoeling van het programma is om alle mogelijke routes te bepalen binnen een fabriek met verschillende eindproducten. Dit gaat over verschillende posities binnen een fabriek. Bij iedere route komt een eindproduct.

Echter als ik op de eerste rij van mijn tabel meer eenen neerzet, dan loopt het programma 'out of stack'. Zoals de eenen nu staat werkt het programma prima.

Tussen de tabel en de uitvoer is een verwerkingsregel, waar te zien is wat het programma precies doet.

Hoop dat jullie er wat mee kunnen.

Alvast bedankt.

Groeten,
Sebastiaan
 
Laatst bewerkt:
Misschien is het een idee om het programma weer te laten zien zodat het wat concreter wordt. De bedoeling van het programma is om alle mogelijke routes te bepalen binnen een fabriek met verschillende eindproducten. Dit gaat over verschillende posities binnen een fabriek. Bij iedere route komt een eindproduct.

Echter als ik op de eerste rij van mijn tabel meer eenen neerzet, dan loopt het programma 'out of stack'. Zoals de eenen nu staat werkt het programma prima.

Tussen de tabel en de uitvoer is een verwerkingsregel, waar te zien is wat het programma precies doet.

Hoop dat jullie er wat mee kunnen.

Alvast bedankt.

Groeten,
Sebastiaan

In je programma zitten té veel Calls die steeds worden aangeroepen en daardoor veel geheugen in beslag nemen. Dat werkt cumulatief naar mate er meer 1'tjes in het tabel staan.
Ik moet zeggen dat ik ook niet veel wijs word van de schema en hoe je het samenstelt.

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan