Español
Foro

Hintergrundprozesse, como correcto?

 

Clemens
Meier
Yo bin actualmente a uno Internetanwendung dran, en cierto Teile auch base64 kodiert/dekodiert voluntad necesario. Das Kodieren braucht siempre seine Tiempo, besonders en großen Archivos. Also möchte Yo esta Kodierung en el Hintergrund laufen dejar, así dass el Hauptprogramm sin Problema weiterlaufen kann. Daher voluntad Me gusta una Hintergrundprozess starten.

Folgendes Szenarium:
Yo habe una haupt.exe , una con XProfan compiliertes Stück Programa
Dann Yo una base64.prc . El Kommunikation zwischen beiden se via pipe.pcu stattfinden.
Beim Beenden de haupt.exe se auch el Hintergrundprozess darse por concluido (no dass lo como Leiche en el Speicher restos).

Soviel Yo weiß, kann Yo el base64.prc como Parámetro de haupt.exe starten. Und como Yo kein Ventana generiere, erscheint lo auch nirgendwo, höchstens en el Taskmanager como Prozess. Richtig? Starte Yo al Besten con WinExec ... ? Como bekomme Yo una Handle zurück y podría con Destroy(&handle) el Prozess otra vez stoppen. Auch correcto?

Yo habe hier en el Foro aber auch otro Möglichkeiten gefunden. Aunque wurde hay sólo jeweils una .exe comenzó, siempre sin Parámetro. Dann wurde en un otro Hilo erwähnt, dass lo bajo Win9X el Aufrufen mehrere Profanprogramme gleichzeitig a Abstürzen führt. Leider wurde el Diskussion hay no a Ende geführt, así dass Yo no weiß, si dafür una Workaround son.

Und letztes: vermutlich se el base64.prc no einzige Prozess bleiben. Gäbe lo Problemas, si mehrere voluntad?

Saludo
 
XProfan 9.1; XP SP2; FF; Editpad
22.05.2006  
 



Hm hier habs veces zusammengepinselt, el debería para una erste Orientierung ausreichen:
KompilierenMarcaSeparación
 {$cleq}
def $apptitle ClemensVorlage
cls
 $U pipe.pcu = pipe.
 $U thread.pcu = thread.
declare pipe&

if %parcount

    encode

else

    declare ex&
    app

endif

pipe.close pipe&
end

proc app

    print app
    case pipe.is(myClemensPipe) : error Pipe already exists, abort.
    pipe&:=pipe.create(myClemensPipe)
    declare fle$
    fle$:=dfokk.bmp
    casenot fileexists(fle$) : error File +fle$+ doesnt exist, abort.
    pipe.push pipe&,>+fle$
    shell par$(0)+ -
    thread.start 1,3
    usermessages 1

    whilenot ex&

        waitinput

    wend

    thread.stop 1
    print Tjoar fertig :P [taste]
    waitkey

endproc

proc encode

    print encoder
    casenot pipe.is(myClemensPipe) : error Pipe doesnt exists, abort.
    pipe&:=pipe.create(myClemensPipe)
    declare fle$
    fle$:=del$(pipe.pop(pipe&),1,1)
    casenot fileexists(fle$) : error File +fle$+ doesnt exist, abort.
    declare mem#,siz&
    siz&:=filesize(fle$)
    casenot siz& : error File +fle$+ is without content.
    print File: +fle$
    dim mem#,siz&
    blockread(fle$,mem#,0,siz&)
    declare i&,s$,c&
    for i&:=0 to siz& do begin
    c&+
    s$:=s$+.hexx(byte(mem#,i&))

    if c&>=512

        c&:=0
        pipe.push pipe&,<+s$
        s$:=

    endif

    end
    case len(s$) : pipe.push pipe&,<+s$
    pipe.push pipe&,.//bye

    proc .hexx

        parameters b&
        case b&<16 : return 0+hex$(b&)
        return hex$(b&)

    endproc

endproc

proc thread.do

    parameters n&
    declare s$
    s$:=mid$(pipe.get(pipe&),1,1)

    if n&==1

        if (s$==<)

            print pipe.pop(pipe&)

        elseif (s$==.)

            print done.
            ex&+
            sendmessage(%hwnd,1,0,0)

        endif

    endif

endproc

proc error

    parameters s$
    messagebox s$,$apptitle,0
    end

ENDPROC

Das Demo zeigt auch, el Usted sehrwohl auch mehere Prozesse beauftragen kannst, Usted Usted entonces aber auch una propio Protokoll schaffen musst a Inputs a koordinieren.
 
22.05.2006  
 




Clemens
Meier
Que el Pipe me está klar y una Threadid es para el Protokol con el eigenständigen Prozessen reserviert. Diese Prozesse debería permanent en el Hintergrund laufen. Via Pipe y una Handle pro Prozess verläuft el Kommunikation. Doch como es lo con el Prozessen incluso. Gibt lo Problemas, si yo el Prozess como oben angegeben aufrufe, also mehrere Profaninstanzen en el Speicher habe.

Oder se Yo más en una Aufruf como bajo [...]  bauen? Como se aber sólo una exe aufgerufen. Yo voluntad pero no verschiedene exe anbieten, pero möglichst como umbenannte prc-Archivos,

Also: mein Hauptprogramm heißt programm.exe
In diesem Programa voluntad zwei Prozesse comenzó
el una hieß prozess1.prc y fue zuvor umbenannt a p1.ttt. Dieses se con
programm.exe p1.ttt comenzó voluntad
el zweite hieß prozess2.prc y fue zuvor umbenannt a p2.ttt. Dieses se entonces con
programm.exe p2.ttt comenzó voluntad.
Beide Prozesse haben kein propio Ventana, lo son also auch no Fehlermeldungen oder Messages. Alles se via Protokol a el Hauptprogramm gemeldet, así dass dieses darauf reagieren kann, si nötig.

Gäbe lo así Problemas? Welches Verfahren es para el Aufruf el PRC-Archivos a empfehlen? Yo hoffe, mein Problema es ahora klar geworden (trotzdem danke IF)
 
XProfan 9.1; XP SP2; FF; Editpad
22.05.2006  
 




Gibt lo Problemas, si yo el Prozess como oben angegeben aufrufe, also mehrere Profaninstanzen en el Speicher habe.


Pauschal nein.


Gäbe lo así Problemas?


Pauschal nein.


Oder se Yo más en una Aufruf como bajo...


Steht Usted frei.


Welches Verfahren es para el Aufruf el PRC-Archivos a empfehlen?


Siehe Source.

PS: Es unwichtig como Su Exen heissen, y wieviele exen (oder prcs) Usted erstellst, y wieviele Prozesse laufen. Mein Source oben demonstriert: Un Exe, Zwei Prozesse, Ein Source.
 
22.05.2006  
 




Clemens
Meier
Mein Problema war wohl, dass Yo el Hilo [...]  gelesen habe (Sistema o Programmabsturz, si mehrere Profanprogramme laufen). Aber si me ahora erklärst, dass lo como absolut no Problemas son, egal welche Método Yo verwende, Voy a dir el sólo una vez glauben. Aber wehe, irgendein win95 / 98 User reißt me el Kopf de, entonces besuche Yo dich
 
XProfan 9.1; XP SP2; FF; Editpad
23.05.2006  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.047 Views

Untitledvor 0 min.
Sven Bader02.08.2021
Jochen Roxlau24.03.2015
Gary1234506.02.2013
Pedro Miguel20.10.2012
Más...

Themeninformationen

Dieses Thema ha 2 subscriber:

Clemens Meier (3x)
iF (2x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie