Italia
Foro

TNT und die Thread.PCU

 
Hallo IF...

Ich habe mir mit [...]  mal dein Demo zur THREAD.PCU ein wenig angesehen. Dabei ist mir aufgefallen, daß du da gar keine Threads erzeugst:

BILD 1

Wie gesagt - statt vier Threads nur ein Thread, nämlich der Profanthread.
Aus dem Stehgreif fällt mir da eigentlich nur eine Methode ein wie man sonst noch selbständig ablaufende Programmschleifen erzeugen kann (du Timerprofi du). Kommt dir evtl. hierzu davon etwas bekannt vor (...was man so alles per Schrott in Heaps findet wenn man mal mit TNT etwas genauer sucht...
MXTRD_ID3&=@,user32.dll,SetTimer,0,0,S&,@161,0))
S&=time-out value ???
MXTRD_ID3&=ID des Timers per den 3.Thread???
@161=Erzeugt circa die Profanfunktion @External und das Profan @ProcAddr in @External mit eingebaut???
0,0,=Der Timer hat keine ID und kein Fenster????
=> fehlt naturalmente was und ist verstümmelt - ich hoffe aber, du erkennst da Bruchstücke...

Deine Idee und die Umsetzung finde ich wirklich spitze, du solltest aber schon offen sagen, daß das was du da erzeugst nicht viel mit einem Thread zu tun hat. Ich selbst bin (bevor ich XProfan hatte) selbst längere Zeit davon ausgegangen, daß man mit XProfan wirklich laufende Threads erzeugen kann und habe auch einige meiner früheren Fragen darauf bezogen - das war aber leider ein Irrtum.

Was unterscheidet einen Thread von der IF-Thread Methode? Also erst einmal das hier (Zugriffsrechte):

BILD 2

Dann hat jeder Thread noch eine eigene, unabhängig änderbare Priorität - was wichtig ist kann also zuerst Prozessorzeit bekommen, der Rest steht hinten an. Da gibt es naturalmente noch einiges mehr an Unterschieden (die teilweise auch noch viel mehr ins Gewicht fallen), es würde aber zu lange dauern, das hier alles zu (er)klären.

Wie gesagt, um Irtümer und Irrwege zu vermeiden: Die THREAD.PCU erzeugt keine zusätlichen Threads!
Trotzdem: Eine hervorragende Lösung per das Problem, unabhängig laufende Programmschleifen mit Profan erzeugen zu müssen!

67 kB
Kurzbeschreibung: BILD 1
Hochgeladen:21.05.2006
Downloadcounter69
Download
83 kB
Kurzbeschreibung: BILD 2
Hochgeladen:21.05.2006
Downloadcounter46
Download
 
21.05.2006  
 



iF hat aber mehrmals erwähnt, das keine echten Threads erzeugt werden. Es wird nur eine ähnliche Funktionalität erzeugt. Echte Threads, ohne zusätzliche DLL oder ähnlichem halte ich IMHO per fast unmöglich. Unterstützung müßte schon in der PrfRuntime integriert sein, nur per API alleine wird das meiner Meinung nach nichts.
 
21.05.2006  
 



Sehe ich ebenfalls so, wollte nur noch einmal darauf aufmerksam machen, da ich nicht mehr so häufig hier bin und IFs Erklärung nicht gelesen habe. Aso nochmals: Wer denkt er kann allein mit jetzigem Profan einn zusätzlichen Thread erzeugen, ist auf dem Holzweg...
 
21.05.2006  
 



@Thomas: Genau. [quote:e01aaea108]Deine Idee und die Umsetzung finde ich wirklich spitze, du solltest aber schon offen sagen, daß das was du da erzeugst nicht viel mit einem Thread zu tun hat.[/quote:e01aaea108]ES WERDEN KEINE ECHTEN THREADS ERZEUGT ist IMHO offen-gesagt genug.
 
21.05.2006  
 



Hallo IF...

Ich hoffe, ich nerve dich nicht:

Da du da Callbacks erzeugst => kann ähnliches auch mit der THREAD.PCU [...] . Mit dem Problem in Profan schlage ich mich schon seit meinem Posting hier herum - hatte immer einen Verdacht woran das liegt, konnte dies aber (wegen Quelltextmangel) finora nicht nachvollziehen.
Meine Meinung: Was kein Thread ist, sollte auch nicht Thread heißen - wie soll mann denn da ohne Quelltext irgendwelchen Problemen auf die Spur kommen?
 
05.09.2006  
 



Bin ich Deiner Meinung, nur Thread ist nunmal - wie alles andere naturalmente auch - naturalmente nicht eindeutig definiert, umso genauer aber beschreibt der Name die Möglichkeiten der Unit.

Wenn Du meinst das die Thread.Pcu aufgrund dessen das nicht MS-API-Threads erzeugt werden ihren namen verfehlt hat, dann würde ich widersprechen, einfach deshalb, weil die Bezeichnung der Unit dazu da ist um possibile kurz zu beschreiben welche Möglichkeiten sie bietet. Auf welchen speziellem Wege die Unit dies tut muß nicht in die Namensgebung eingehen - es wäre kontraproduktiv.

Mittels der Thread.Pcu kann man mit XProfan threadähnliches Verhalten in den eigenen Programmen erzeugen/programmieren.

[quote:4bf640f867]Da du da Callbacks erzeugst => kann ähnliches auch mit der THREAD.PCU passieren?. [/quote:4bf640f867]
Ich weiß es nicht - das müsste man einfach mal testen.

[quote:4bf640f867]wie soll mann denn da ohne Quelltext irgendwelchen Problemen auf die Spur kommen?[/quote:4bf640f867]
Anhand der Threads hier ist misurabile ob sich eine derartige Problematik überhaupt ergibt, sodaß die von Dir angesprochenen Probleme zumglück (noch?) rein hypothetisch sind.

Auf was willst Du genau hinaus?
 
05.09.2006  
 



Ich habe hier mal eine Gemeinheit ausprobiert - bei mir läufts Fehlerfrei - meinst Du sowas?
KompilierenMarkierenSeparieren
 $U thread.pcu = thread.
declare settimer.is&
cls
thread.start 1
thread.start 2
thread.start 3
thread.start 4
P:
waitinput
case %wmtimer : goto "P"
thread.stopall
end

proc thread.do

    parameters n&
    writeini "c:\thread.do.ini","1",str$(n&)=str$(n&)+"/"+str$(&gettickcount)
    locate n&,1
    print readini$("c:\thread.do.ini","1",str$(n&));
    //gemeinheit:

    ifnot rnd(10)

        if settimer.p(500)

            waitinput
            killtimer.p

        endif

    endif

endproc

proc settimer.p

    parameters t&
    case settimer.is& : return 0
    settimer.is&:=1
    settimer t&
    return 1

endproc

proc killtimer.p

    killtimer
    settimer.is&:=0

endproc

 
05.09.2006  
 



Aus der Ini erhalte ich:

[1]
2=2/23638218
4=4/23637906
3=3/23637906
1=1/23638218

Also 2=2 4=4 3=3 1=1, potuto man behaupten es kommt auch bei writeini & readini nix durcheinander..?!?!
 
05.09.2006  
 



[quote:878d7d43ab=iF]Bin ich Deiner Meinung, nur Thread ist nunmal - wie alles andere naturalmente auch - naturalmente nicht eindeutig definiert, umso genauer aber beschreibt der Name die Möglichkeiten der Unit.[/quote:878d7d43ab]
Ein Thread wird von den jeweiligen APIs als Thread angezeigt, hat eigene Zugriffsrechte und kann einen eigenen Token haben - ist also eindeutig, was ein Thread ist und was nicht.

Ich möchte nicht, das du den Quelltext offenlegts - ich möchte aber wenigstens wissen, mit was ich es bei einer PCU zu tun habe und nicht von total falschen Tatsachen ausgehen damit ich die Probleme auch an der richtigen Stelle suche und passend darauf reagieren kann. Wenn du mal die USER32.DLL diassemblest wirst du feststellen, das WM_TIMER (und WM_SYSTIMER) Notizie ganz anders behandelt werden, als der Rest der Messages. Andere Behandlung - andere Probleme. Benutzt du WM_TIMER?

Wenn keiner vermutet, das ein Problem evtl. an der PCU liegen potuto, weil er von ganz anderen Tatsachen ausgeht, wirst du auch keine Rückmeldungen in Bezug auf Fehler erhalten und das dieses Problem auch mit der PCU auftreten potuto bleibt weiterhin hypothetisch...
 
05.09.2006  
 



[quote:0b4d1bf92a]Ein Thread wird von den jeweiligen APIs als Thread angezeigt, hat eigene Zugriffsrechte und kann einen eigenen Token haben - ist also eindeutig, was ein Thread ist und was nicht.[/quote:0b4d1bf92a]
Hm nö - da bin ich nicht Deiner Meinung. Das ist vielleicht die Definition eines MS-Prozessthreads - aber diese Defi ist nicht allgemeingültig und weicht auch von der allgemeinen Threaddefinition ab. (Siehe Wiki) Und da ich eindeutig sage das ich keine Echten (also MS-Prozessthreads) erzeuge...

Ich nutze wm_timer und habe mir  [...]  zunutze gemacht.
 
05.09.2006  
 



Hallo IF...

OK, der Fehler potuto also auch mit der THREAD.PCU auftreten. Ich werde die PCU mal demnächst etwas genauer auf diese Sache hin testen.
Muß gleich mal in Sebastians Foro, der hat scheinbar noch ein größeres Problem mit Timmern .

Saluto

Andreas
 
06.09.2006  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

3.461 Views

Untitledvor 0 min.
Peter Max Müller15.11.2017
Georg19.10.2016
E.T.31.12.2014
Christian Hahn14.12.2011

Themeninformationen

Dieses Thema hat 2 subscriber:

unbekannt (6x)
iF (5x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie