GhastlyMIB
Gebruiker
- Lid geworden
- 5 jun 2007
- Berichten
- 368
Hey,
Ik ben bezig met een programma voor het beheer van films op een harddisk, en daarbij van meerdere threads.
Nu gebruik ik hiervoor BackgroundWorkers die de taken op de achtergrond uitvoeren.
Als de worker klaar is met zijn werk, moet de complete in de oude thread terug vallen om de RunWorkerCompleted uit te voeren. Maar tot mijn verbazing als ik er dieper op in ga, wordt die óók in de thread uitgevoerd. Maar je kunt wel GUI componenten bijwerken :shocked:...
Als voorbeeld heb ik deze code:
De Main thread nummer is 10, de START = 11 en END is ook 11.
Hoe kan ik ervoor zorgen dat ik de END in thread 10 kan krijgen?
Heeft iemand hier ook ooit mee gewerkt?
Gr,
Mathijs
Ik ben bezig met een programma voor het beheer van films op een harddisk, en daarbij van meerdere threads.
Nu gebruik ik hiervoor BackgroundWorkers die de taken op de achtergrond uitvoeren.
Als de worker klaar is met zijn werk, moet de complete in de oude thread terug vallen om de RunWorkerCompleted uit te voeren. Maar tot mijn verbazing als ik er dieper op in ga, wordt die óók in de thread uitgevoerd. Maar je kunt wel GUI componenten bijwerken :shocked:...
Als voorbeeld heb ik deze code:
Code:
private BackgroundWorker _worker;
public Controller()
{
Console.WriteLine("MAIN: {0}", System.Threading.Thread.CurrentThread.ManagedThreadId);
_worker = new BackgroundWorker();
_worker.DoWork += (sender, e) => Console.WriteLine("START: {0}", Thread.CurrentThread.ManagedThreadId);
_worker.RunWorkerCompleted += (sender, e) => Console.WriteLine("END: {0}", Thread.CurrentThread.ManagedThreadId);
_worker.RunWorkerAsync();
}
De Main thread nummer is 10, de START = 11 en END is ook 11.
Hoe kan ik ervoor zorgen dat ik de END in thread 10 kan krijgen?
Heeft iemand hier ook ooit mee gewerkt?
Gr,
Mathijs