Mehrere Parameter an einen Thread übergeben?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Mehrere Parameter an einen Thread übergeben?

Beitrag von PureBasic4.0 »

Hi, Leute

Wie kann man bei Threads mehrere Parameter übergeben? Es gibt ja den Befehl

Code: Alles auswählen

Th1 = CreateThread(@ProcedureName(),Parameter)
Aber wie kann man mehrere (ca. 2-3) Parameter übergeben? Der Beispielcode in der Manual benutzt auch nur einen Param.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
ChristianK
Beiträge: 77
Registriert: 13.12.2004 14:55

Beitrag von ChristianK »

Geht nicht.
ChristianK for President
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

Das klappt und wie. Mann mus nur ein bischen trixen:

Code: Alles auswählen

Structure Paramters
  lParam2.l
  sParam1.s
EndStructure
Procedure ThreadProc(*this.Paramters)
  Debug *this\lParam2
  Debug *this\sParam1
EndProcedure

Define prs.Paramters
With prs
  \lParam2 = 34
  \sParam1 = "Hallo, das ist ein Parameter!"
EndWith

Define hThread = CreateThread(@ThreadProc(), @prs)

WaitThread(hThread)

End
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

ChristianK hat geschrieben:Geht nicht.
geht doch.

http://www.purebasic.fr/english/viewtop ... 3340#93340

(ist zwar 3.94er Code, jedoch aber leicht an 4.x anpassbar,
'Threadsichere Exe' in den Projekteinstellungen aktivieren)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Indirekt geht das:

Gib der Prozefur alle Infos als String durch Komma getrennt und der Thread teilt den String mit StringField wieder auf.
Oder du übergibst dem Thread den Pointer zu einer strukturierten Variable, die alle Infos enthält.

Oder übergib ein Array/LinkedList...
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

geil.. ihr überschlagt euch ja richtig... :lol:
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Wär ich beim Posten nicht weggegangen, wär ich erster... :mrgreen:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ChristianK
Beiträge: 77
Registriert: 13.12.2004 14:55

Beitrag von ChristianK »

Übergeben kann man immer nur einen. Das ist die korrekte Antwort auf die gestellte Frage.

welcher Art der Parameter ist, ist euer Bier.
ChristianK for President
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

ChristianK hat geschrieben:Das ist die korrekte Antwort auf die gestellte Frage.
ja, das stimmt in der Tat :allright:

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

OK. Danke! Daran hatte ich gar nicht gedacht
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Antworten