[C# 6] Eseménykezelés két szálon - Hogyan oldhatnám meg azt, hogy az egyik szálon kiváltsak egy eseményt, amit egy másik szál eseménykezelője kezel le?
Ez azért kellene nekem, mert írok egy zenelejátszót, ami egy példányban futna. Induláskor megvizsgálja, hogyha a program nem fut, akkor a loopback hálózati interfészen nyit egy TCP szervert, amire különféle parancsokat lehet küldeni. Ha viszont a program már fut, akkor a program felveszi a kapcsolatot a már futó példánnyal és utasítja arra, hogy indítsa el a parancssori argumentumként kapott zenét.
Az első része lenne érdekes. Van egy PlayerServer osztályom:
Ez valahogy így működne (és működik is):
PlayerServer ps = new PlayerServer();
ps.CommandReceived += (Command, Arguments) => {...}; //Itt már például feltételezhető, hogy előbb lesz bejövő kapcsolatunk, minthogy feliratkoztunk volna az eseményre
De ez így biztonságos is? Hogyan lehetne ezt értelmesebben megoldani? (Itt most nem olyan apróságokra gondolok, mint pl. amikor a string-et ; mentén feldarabolom, lesz-e egyáltalán két eleme a kapott tömbnek, stb. - azt tudom, hogy még javítani kell).
De eleve hogy történne ugyanazon a szálon?
Az eseményt máshol kapod el, mint ahol kiváltod, különben sima függvényhívást használnál.
Nekem még mindig nem világos mit szeretnél kérdezni.
Ha az a kérdés, hogyan működik az eseménykezelés arra van csillió precíz, szemléletes leírás a neten, nem fogok ideírni n+1-et.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!