ImageOutput liefert falschen Wert bei threadsicherer Exe

Fragen und Bugreports zur PureBasic 4.0-Beta.
Hugo
Beiträge: 56
Registriert: 30.03.2005 12:07
Wohnort: Nähe München

ImageOutput liefert falschen Wert bei threadsicherer Exe

Beitrag von Hugo »

Hallo,

wenn ich ImageOutput in einem Thread verwende, bekomme ich falsche Werte, sobald 'Threadsichere Exe' eingeschaltet ist. Sollte das so sein oder ist das ein Bug? (Beta 9)

Code: Alles auswählen

#WindowMain    =  1
#Image3        =  3
#ScrollGadget  = 21
#ImageGadget   = 22

Global gBY_Exit.b
;Global gMX_Image3.l

Procedure MainThread()
  
  Protected xtimer
  
  ;LockMutex( gMX_Image3 )
  Debug "2. ImageOutput: " + Str( ImageOutput( #Image3 ) )
  ;UnlockMutex( gMX_Image3 )
   
  Repeat
    Delay(100)
  ForEver
  
EndProcedure


If OpenWindow( #WindowMain, 100, 100, 500, 400, "Test", #PB_Window_SizeGadget | #PB_Window_SystemMenu )

  CreateImage( #Image3, 200, 200 )
  ;gMX_Image3 = CreateMutex()
  
  If CreateGadgetList( WindowID( #WindowMain ) )
     ImageGadget( #ImageGadget, 0, 0, 200, 200, ImageID( #Image3 ) ) 
        
     CreateThread( @MainThread(), 0 )
        
     ;LockMutex( gMX_Image3 )
     Debug "1. ImageOutput: " + Str( ImageOutput( #Image3 ) )
     ;UnlockMutex( gMX_Image3 )
        
     Repeat
       Select WaitWindowEvent()
         Case #PB_Event_CloseWindow  : gBY_Exit = #True
       EndSelect
        
     Until gBY_Exit
        
  EndIf
  
EndIf