2016-10-21 2 views
0

bekam ich den Code alswie Verzögerungen im Cobol-Programm ohne Dienstprogramm zu erstellen?

ACCEPT TIME-TODAY FROM TIME. 

** 10 SECONDS waiting: 
PERFORM UNTIL DELTATIME <= 00001000 
    ACCEPT TIME-TODAY-2 FROM TIME 
    COMPUTE DELTATIME = (TIME-TODAY-2 - TIME-TODAY) 
END-PERFORM. 

Lesen Sie mehr: http://ibmmainframes.com/about9953.html#ixzz4NiZIe8cY

aber dieser Code funktioniert nicht für Randbedingungen.

+5

Nein, das ist einfach absurd. Kennen Sie die Kosten von 10 CPU-Sekunden auf Ihrem Mainframe? Ich denke, es würde dir Übelkeit bereiten. Warum denkst du, dass du das tun musst? –

+0

Der Thread, zu dem Sie auf einem anderen Web-Board verlinken, ist zehn Jahre alt. – cschneid

+4

Duplizieren: http://stackoverflow.com/questions/11786621/how-to-sleep-in-mainframe-cobol –

Antwort

2

Sie haben das Mainframe-Tag auf Ihrer Frage, ich nehme an, z/OS oder z/VM ist Ihr Betriebssystem.

Die Laufzeitroutinen für Ihre Anwendung werden zusammen als Sprachumgebung bezeichnet. Ob implizit oder explizit - Sie rufen diese Laufzeitroutinen auf. Du kannst es nicht vermeiden.

Die Laufzeit umfasst CEE3DLY, die Ihr Ziel erreicht. Überprüfen Sie den Abschnitt Sprachumgebung des IBM Knowledge Center.

Ich verstehe, dass Sie glauben, Ihre Anforderung ist es, eine Verzögerung in Ihrem Code zu erstellen, ohne "irgendein Dienstprogramm" zu verwenden. Ich sage Ihnen, dass Sie die ganze Zeit in Ihrem Code Dienstprogramme (die Language Environment-Laufzeitroutinen) verwenden. Working-Storage wird beispielsweise von Sprachumgebungsroutinen zugewiesen. Der Aufruf CEE3DLY fügt keine Abhängigkeiten hinzu.

+0

Da dies ein Duplikat ist: Bitte stimme nicht über diese Antwort ab - @cschneid: bitte kopiere das meiste davon Beantworte die Antwort, die du in deiner ursprünglichen Antwort gegeben hast (Duplikat), lösche deine Antwort, wenn möglich, und stimme für das Duplikat ab –

Verwandte Themen