Español
Foro

nProc y Neuzeichnen - Messages

 
- Página 1 -



E.T.
Eben así aufgefallen: Ist mein Xprofan-Programa en el nProc al trabajo, se lo z.B. por "Neuzeichnen"  de el Tritt gebracht. "Neuzeichnen"  tritt sí siempre en, si el Prog-Ventana verkleinert, verdeckt oder movido se (verdeckt z.B. por Bildschirmschoner ).
Nach solch una Event scheind mi nProc endlos así beschäftigt a ser, el Ventana neu dibujar a querer. Und dies ewig, con el Eieruhr para völlige Auslastung. Auch el Messages a el Balken-Mostrar erzielen keinerlei Wirkung mehr. Selbst el Sistema-Menü se wirr, antes el nProc Yo z.B. el [X] para "Programm schließen" deaktiviert, dieses es entonces otra vez aktiv.
Solange Yo el Ventana no verdecke oder verschiebe, se ejecuta el nProc klaglos por, con el bastante normalen Pfeil como Mauszeiger....

Ejemplo meiner nProc:
KompilierenMarcaSeparación
nProc Vergleichen

    global Liste1&,  Liste2&, Liste4&, Zaehler1&, Zaehler2&, Status&, ProgressBar_3&, ProgressBar_4&
    Declare Verg_Dat_1$, Verg_Dat_2$, Vergl_Str1$, Vergl_Str2$, Vergl_Pass&, Pos_L1&

    WhileLoop 0,Zaehler1&

        Vergl_Str1$ = GetText.Listview(Liste1&, &loop, 0)
        Verg_Dat_1$ = GetText.Listview(Liste1&, &loop, 1)

        WhileLoop 0,Zaehler2&

            Vergl_Str2$ = GetText.Listview(Liste2&, &loop, 0)

            If Vergl_Str1$ = Vergl_Str2$

                Verg_Dat_2$ = GetText.Listview(Liste2&, &loop, 1)

                IfNot Verg_Dat_1$ = Verg_Dat_2$

                    Inc Vergl_Pass&
                    AddString(Liste4&, Verg_Dat_1$ + "|" + Verg_Dat_2$)

                EndIF

            EndIf

            Sendmessage(ProgressBar_4&,$0400+2,int(100.0/Float(Zaehler1&)*Float(&loop)),0)

        EndWhile

        Sendmessage(ProgressBar_4&,$0400+2,0,0)
        Sendmessage(ProgressBar_3&,$0400+2,int(100.0/Float(Zaehler1&)*Float(&loop)),0)

    EndWhile

ENDPROC


Ist sí sólo kein así komplizierter Code, lediglich el vergleichen vieler Cuerdas en Übereinstimmung (se ejecuta sólo doch como nProc vieeel más rápido como en XProfan..)
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
12.11.2010  
 



« Dieser Contribución wurde como Solución gekennzeichnet. »

- Página 3 -


Geht doch como en el Ejemplo*:
KompilierenMarcaSeparación
'URL: https://xprofan.com/intl/de/xpse/nproc-und-neuzeichnen-messages/#bottom
 {$cleq}
cls
long myThread=createThread(0,0,procAddr(eineProc),hWnd,0,0),b
print "fertig"

while 1

    waitinput 1000
    getExitCodeThread(myThread,addr(b))
    case b==123456 : break

wend

print "allesfertig"
end

nProc eineProc(long some)

    whileLoop 2

        setText(some,str$(getTickCount))
        sleep(1000)

    wend

    return 123456//oder exitThread(123456) wenn an beliebiger Stelle Thread abgewürgt werden soll wie "end 123456"

endProc


*XP-getestet - tener hier sólo XP.
 
13.11.2010  
 



 
- Página 2 -


E.T. (13.11.10)

IF (13.11.10)
Was spricht porque dagegen el Usted Su Proc - el como sólo "ewig" dauert - por CreateThread aufrufst en lugar de "normal"?


Weil en el Prog eh keiner qué hacer kann (se), solange el Vergleichen se ejecuta.


So como yo verstanden habe stimmt dies pero no, porque lo se De hecho, el UI-Hilo neuzeichnen y no "nichts" tun. ^ ^

E.T. (13.11.10)
Würde porque entonces el HWND el Neuzeichnen-Befehl mitbekommen, wärend lo en el otro Hilo wartet (soryy, Yo stell mich wohl algo blöd a...)


Denkst vlt. sólo a kompliziert. Usted hast momentan sólo 1 Hilo y möchtest aber el dieser 2 Dinge "zugleich" tut - qué "natürlich" no Fall es. ^ ^
 
13.11.2010  
 



Wart Yo fummel Usted qué... <-- ließt sí para Glück keiner...
 
13.11.2010  
 



Schau veces si Usted algo como hilft...
KompilierenMarcaSeparación
13.11.2010  
 



Echten Hilo "unendlich" largo ackern dejar sin UI-Hilo a "blockieren":
KompilierenMarcaSeparación
So kannst doch simplemente "Aufgaben"/ Hilos anweisen y el voluntad lecker en el Hintergrund abgearbeitet sin el Usted Usted kümmern müsstest... (nProcs son doch threadsicher ^ ^)
 
13.11.2010  
 




E.T.
Super, el erstere sieht para mich así de, como sería lo hacer, Yo búsqueda.

Muss Todavía igual el otro Sachen ruhen dejar y einbauen y testen (y derweil otra vez qué encima Call's y ProcAddr en Ensamblador aprender) ...

Auf cada Fall ya veces una großes DANKE para Su Mühe!!!
Und wenns klappt, entonces ...
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
13.11.2010  
 



E.T. (13.11.10)
Super, el erstere sieht para mich así de, como sería lo hacer, Yo búsqueda.


Ihgitt Por favor, nimm abers 2.... el Erste es una übler Stinkschuh! ^ ^
 
13.11.2010  
 




E.T.
SO, Yo komm el Sache näher: Nur se ahora el Vergleichen aufgerufen y el XProfan-Prog rennt más, lo sino que debe "warten"(oder warten>nachschauen si vergl. fertig>ggf. Ventana aktualisieren>warten), si Vergleichen ya fertig.
Würde sí denken con Hilo.Is(lThread) , aber es sí en XPSE "fehlerhaft"...
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
13.11.2010  
 



Schau veces hierzu nützliche APIs: [...] 

Einfach con GetExitCodeThread schauen si el Hilo todavía se ejecuta oder antes el Ende el ThreadProc por SendMessage ne UserMessage absenden en el Hauptprogramm algo "mitzuteilen" oder simplemente por Volver-Valor de el Hilo-Proc el ThreadExitCode festlegen oder por ExitThread ThreadExitCode a beliebiger Punto en el ThreadProc festlegen:
KompilierenMarcaSeparación
'URL: https://xprofan.com/intl/de/xpse/nproc-und-neuzeichnen-messages/#bottom
 {$cleq}
cls
long myThread=createThread(0,0,procAddr(eineProc),hWnd,0,0),b
print "fertig"

while 1

    waitinput 1000
    getExitCodeThread(myThread,addr(b))
    case b==123456 : break

wend

print "allesfertig"
end

nProc eineProc(long some)

    whileLoop 2

        setText(some,str$(getTickCount))
        sleep(1000)

    wend

    return 123456//oder exitThread(123456) wenn an beliebiger Stelle Thread abgewürgt werden soll wie "end 123456"

endProc

 
13.11.2010  
 



 
- Página 3 -



E.T.
Hm, GetThreadID()  wäre como wohl qué, aber sólo de VISTA [...]  . Muss aber bajo XP laufen...
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
13.11.2010  
 



Geht doch como en el Ejemplo*:
KompilierenMarcaSeparación
'URL: https://xprofan.com/intl/de/xpse/nproc-und-neuzeichnen-messages/#bottom
 {$cleq}
cls
long myThread=createThread(0,0,procAddr(eineProc),hWnd,0,0),b
print "fertig"

while 1

    waitinput 1000
    getExitCodeThread(myThread,addr(b))
    case b==123456 : break

wend

print "allesfertig"
end

nProc eineProc(long some)

    whileLoop 2

        setText(some,str$(getTickCount))
        sleep(1000)

    wend

    return 123456//oder exitThread(123456) wenn an beliebiger Stelle Thread abgewürgt werden soll wie "end 123456"

endProc


*XP-getestet - tener hier sólo XP.
 
13.11.2010  
 




E.T.
Jo, así passt's... , danke IF
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
14.11.2010  
 



^ ^
 
14.11.2010  
 




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

24.231 Views

Untitledvor 0 min.
iF05.12.2018
p.specht07.01.2018
Ernst07.05.2016
funkheld28.04.2016
Más...

Themeninformationen

Dieses Thema ha 3 subscriber:

iF (15x)
E.T. (10x)
unbekannt (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