C# folyamat szálak és szinkronizálás?
Szóval :
- van egy MyThread classom aminek a belsejeben van egy MyForm
- van egy Organizer class az organizer feldolgozandó adatokat szolgáltat egy List<List<String>> bol
a fő programban:
Organizer organizer = new Organizer();
List<MyThread> myThreads = List<Mythread>();
for(int index=0;index<maxThreadNr;index++)
{myThreads.add(new MyThread(index, organizer));}
List<Thread> threads;
myThread.ForEach(myThread => threads.add(new Thread(new ThreadStart(myThread.Runable))));
threads.ForEach(thread => thread.Start());
eddig ok.
de a MyThread ben es azon belul a WinForm ban a FormLaod metodusban
használok egy currentData = organizer.getNextData();
az organizátor miden thread eseten ugyan az az organizátor a fő programból.
A lényeg, hogy az organizator ossza szét a munkákat a teljesítmény alapján. De kellene valahogy szinkronizáljam, hogy ne akadjon el mikor többen is meghíják egyszerre ugyan azt a metódust.
WinForm-ot muszáj használjak mert csak így lehet megoldani azt a feladatot ami meg kell oldjak, de nem irteraktiv a felület.
A WinFormot egy szál kezelje, a szálak pedig kérjék a munkákat az organizátor szinkronizált műveletének meghívásával. Ennél jobbat nem tudsz kézzel csinálni.
Használj ThreadPoolt
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!