zdravím, nevím jstli je to vůbec realizovatelné ale...
potřebuju zapnout jedno vlákno, ve kterém poběží cyklus (řekněme že bude počítat i++).
jak mám z jiného vlákna přistoupit do tohodle spuštěnýho a zjistit aktuální stav i?
Ruzne, jeden ze zpusobu je zasilani zprav. Vzdycky kdyz se zmeni i, tak vyvolas udalost (v parametru predas hodnotu i). Vsichni, kteri odebiraji tuto udalost (naslouchaji), pri jejim vyvolani provedou svuj kod.
V C# jsou udalosti implementovany primo v jazyce, v Jave to muzes udelat treba takhle.
Alebo mapisat metodu, ktora ti vrati aktualnu hodnotu, pozor treba ju synchronizovat.
class MyClass implements Runnable{
public int counter;
public MyClass(){
counter = 0;
}
public void run(){
// cyklus a v nom je niekde counter
// kod
}
public int synchronized getCount(){
return counter;
}
}
MyClass runableClass = new MyClass();
Thread thread = new Thread(runnableClass);
thread.start();
// v nejakom vlakne ktore ma referenciu na runnableClass
int currentState = runnableClass.getCount();
Alebo ako je vyssie spomenute mozes pouzit Observery, Listenery a ine ery... co len chces a ako len chces.
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku