Hur gör man bäst (och kanske enklast) för att skicka saker mellan trådar? du har objektet i variabeln x: lock suger, den använder monitor.enter vilket gör att man lätt kan få en timeout och deadlocks. Kommunikation mellan 2 trådar?
tex:
har två trådar av samma typ (class) skapade i en annan klass, hur gör jag för att skicka tex en text-sträng från den ena tråden till den andra?
När jag skapar trådarna fixar jag först nya object av klassen för att skicka med lite data, sedan läggs de objekten in i en lista för att kunna återanvändas.
Finns det nått generellt sätt man ska/kan använda sig av?? Sv: Kommunikation mellan 2 trådar?
lock(x.MinLista.Syncroot) //Hoppas syncroot blev rättstavat, inte hundra på stora/små bokstäver där
{
x.SättMinSträng("hej!");
}
vad lock gör är att låsa den lista du har. En lite bättre variant är att du skriver
lock(x)
eller ingenting helt enkelt och istället stoppar en lock på listan i funktionen SättMinSträng
Vad look gör är att se till att den tråd som anropar lock har ensamrätt på det objekt som du skickar in därSv: Kommunikation mellan 2 trådar?
Dessutom skall man använda sig av ett externt lock objekt och inte objektet man jobbar på, kan ju vara så att man vill göra fler saker.
Kolla på Ian Griffits blog för mer info:
http://www.interact-sw.co.uk/iangblog/2004/03/23/locking
Dessutom är Lock en kanon, är du säker på att du måste låsa den alltid? Räcker det inte med den ngt enklare varianten med Reader/Writer lås?