Thread in Modulen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Thread in Modulen

Beitrag von Andreas21 »

Wo steckt hier der Fehler?

Code: Alles auswählen

DeclareModule test
  Declare test(wert)
EndDeclareModule
  
Module test

  Procedure test(wert)
    Debug "Test"
  EndProcedure

EndModule
  
CreateThread(@test::test(), 0)
CreateThread(@test::test(), 0) erzeugt einen Fehler.

Code: Alles auswählen

DeclareModule test
  Declare test(wert)
  Declare test2()
EndDeclareModule
  
Module test

  Procedure test(wert)
    Debug "Test"
  EndProcedure
  
  Procedure test2()
    CreateThread(@test(),0)
  EndProcedure

EndModule
  
test::test2()
Das wiederum geht.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Thread in Modulen

Beitrag von ts-soft »

Code: Alles auswählen

CreateThread(test::@test(), 0) 
:wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: Thread in Modulen

Beitrag von Andreas21 »

Ok, Baum vor Lauter Bäumen nicht gesehn -.-

Danke^^
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Thread in Modulen

Beitrag von ts-soft »

Da gab es im engl. Forum schon eine kleine Diskussion. Für mich ist es so aber logischer.
Namespace::@Function(), ansonsten sieht es aus, als ob man die Adresse des Namespace
ermitteln möchte.

Es gibt aber auch gegenteilige Meinungen, die Deine nicht funktionierende Syntax als
einleuchtender Empfinden.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: Thread in Modulen

Beitrag von Andreas21 »

So ist es aber richtig nach meiner Meinung.

Ich hatte nur einen kleinen Denkfehler der mir nicht aufgefallen ist weil ich das noch nie mit Modulen gemacht habe und daran nicht gedacht hatte^^

Man braucht ja die Adresse der Funktion.
Und das ist ja in dem Fall ja "test::@test()"
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8838
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Thread in Modulen

Beitrag von NicTheQuick »

Um mal bei der Diskussion zu bleiben. Ich finde es eher logischer, wenn das @ ganz vorne steht. Bei Strukturen ist es ja auch so, also dass man '@variable\spieler[3]\name' schreibt anstatt 'variable\spieler[3]\@name'. Warum dann also nicht auch bei Modulen. Aber was soll's... Da kann man eh nichts dran ändern. ^^
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Thread in Modulen

Beitrag von ts-soft »

NicTheQuick hat geschrieben:Aber was soll's... Da kann man eh nichts dran ändern. ^^
Da bin ich jetzt aber auch Froh drüber :twisted:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten