Webgadget (IMA aus Thread)

Für allgemeine Fragen zur Programmierung mit PureBasic.
Lambda
Beiträge: 526
Registriert: 16.06.2011 14:38

Webgadget (IMA aus Thread)

Beitrag von Lambda »

guten abend,

wenn ich aus einem thread heraus auf ein webgadget zugreifen will (sei es SetGadgetItemText oder
SetGadgetAttribute) bekomme ich einen InvalidMemoryAccess fehler, aber wieso?

die thread prozedur greift innerhalb auf eine prozedur zu die auf das gadget zugreift
Benutzeravatar
Bisonte
Beiträge: 2476
Registriert: 01.04.2007 20:18

Re: Webgadget (IMA aus Thread)

Beitrag von Bisonte »

Meines Wissens sind nicht alle Gadgets Threadsafe.

Ausserdem sollte man Gadgets nur in dem Thread manipulieren (Set....) in dem sie auch erstellt wurden,
um genau soetwas zu vermeiden.

Sende ein Signal von deinem "ManipulatorThread" zu dem Thread, der das Gadget erstellt hat und der
manipuliert dann. Darüber hinaus solltest man sich bei Threadangelegenheiten auch mit Mutex usw.
auseinandersetzen ...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
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: Webgadget (IMA aus Thread)

Beitrag von ts-soft »

Zumindest unter Linux ist das WebGadget nicht Threadsafe, siehe hier:
http://www.purebasic.fr/english/viewtop ... 65#p188965

Unter Windows kann ich mir vorstellen, das viele Interface-Methoden, die ja
im Endeffekt aufgerufen werden, auch nicht Threadsafe sind.
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
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: Webgadget (IMA aus Thread)

Beitrag von WPö »

Mahlzeit!

Bestätige hiermit die Probleme, von einem Nebenläuferprozeß aus auf im Hauptprogramm erstellte Klickflächen zuzugreifen. Bin da selbst schon mal drauf ausgerutscht. Da das aus Sicht des Betriebssystems zwei völlig verschiedene Programme sind, wird der Versuch, im Weiher des Nachbarn zu fischen, verhindert (Speicherschutz).

Bisonte riß es schon an: Signal an Hauptprogramm schicken, das die notwendige Bearbeitung der Klickflächen vornimmt. Das ist zwar etwas langsamer (und etwas umständlicher), funktioniert aber und ist betriebssystemkonform.

Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Antworten