login  Naam:   Wachtwoord: 
Registreer je!
 Forum

multithreading probleem

Offline gerits - 13/08/2008 16:52 (laatste wijziging 13/08/2008 20:43)
Avatar van geritsLid Hallo,

ik ben nu pas begonne met multithreading te leren, maar stoot al op een probleem waar ik maar niet uit geraak..

ik disable een knop op mijn formulier, dan start ik mijn thread en dan zou ik willen dat op het einde van de thread de knop terug geënabled wordt..

hiervoor heb ik een event aangemaakt oncompletionEventHandler, maar nu krijg ik de volgende melding:
Citaat:
System.InvalidOperationException was unhandled
Message="Het is niet toegestaan een bewerking uit te voeren via verschillende threads: er werd vanaf een andere thread toegang gekregen tot het besturingselement btnScanNow dan de thread waarop het element is gemaakt."
Source="System.Windows.Forms"
StackTrace:
bij System.Windows.Forms.Control.get_Handle() bij System.Windows.Forms.Control.OnEnabledChanged(EventArgs e) bij System.Windows.Forms.ButtonBase.OnEnabledChanged(EventArgs e) bij System.Windows.Forms.Control.set_Enabled(Boolean value) bij Test.Form1.finishedSearchEventHandler() in C:UsersRubenDocumentsVisual Studio 2008ProjectsTestForm1.vb:regel 70 bij Test.Test1.AllTestFiles() in C:UsersRubenDocumentsVisual Studio 2008ProjectsTestTest.vb:regel 30 bij System.Threading.ThreadHelper.ThreadStart_Context(Object state) bij System.Threading.ExecutionContext.runTryCode(Object userData) bij System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) bij System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) bij System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) bij System.Threading.ThreadHelper.ThreadStart()
InnerException:

Hoe kan ik dit oplossen?

edit: volledige exception toegevoegd voor meer duidelijkheid

2 antwoorden

Gesponsorde links
Offline xellos - 27/08/2008 22:23
Avatar van xellos Lid je kan niet een thread afsluiten en dan de zelfde thread je knop laten enablen maar dat moet je met een andere thread doen
Offline Ontani - 27/08/2008 23:19
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Nee het probleem is dat de Main Thread die standaard loopt (Je programma eigenlijk) de knop heeft aangemaakt en aan het form toegevoegd, dit zorgt ervoor dat je vanuit een andere Thread eigenlijk geen toegang hebt tot de controls die gemaakt zijn in de eerste Thread.

Zoek op google naar : Vb.NET Threading AddDelegate om je probleem op te lossen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.167s