IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Jan
Člen
Avatar
Jan:23.2.2013 13:38

Ahoj, potřeboval bych poradit s jedním problémem týkající se vytváření nových vláken s parametry na který jsem narazil. Potřebuji vytvořit nové vlákno, které spustí metodu a jako jeden s parametrů jí předá referenci na proměnou, ale když se o to pokusím pomoci ThreadStar tak mi Visual Studio zahlásí chybu Cannot use ref or out parameter inside an anonymous method, lambda expression, or query expression. Proto bych se chtěl zeptat jestli je vůbec možné vytvořit vlákno s odkazem na proměnou a pokud ano tak jak.

ThreadStart starter = delegate { Strela(ref letadloPozice); };
Thread strela = new Thread(starter);
strela.Start();

private void Strela(ref int letadloPozice)
{
//Kód
}

Předem děkuji za radu :)

Odpovědět
23.2.2013 13:38
Cogito ergo sum
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Jan
matesax:23.2.2013 13:49

Zaprvé musíš delegátovi dát:

delegate(int letadloPozice)

Za druhé - proč tam cpeš ref? (Nevím - asi to nepůjde.)

 
Nahoru Odpovědět
23.2.2013 13:49
Avatar
David Dostal
Tvůrce
Avatar
David Dostal:23.2.2013 15:04

Já bych to řešil takto:

Thread t = new Thread(() => {Tady bude to, co má vlákno dělat});
t.Start();

Osobně ref vůbec nepoužívám, ale snad by to mělo jít :)

Editováno 23.2.2013 15:05
 
Nahoru Odpovědět
23.2.2013 15:04
Avatar
bassclide
Člen
Avatar
bassclide:23.2.2013 15:32

Na tento způsob bych to řešil já

Thread t = new Thread(delegate () { strela(int i);});
Nahoru Odpovědět
23.2.2013 15:32
Carpe diem Baby !
Avatar
David Dostal
Tvůrce
Avatar
David Dostal:23.2.2013 15:40

Taky možnost.

 
Nahoru Odpovědět
23.2.2013 15:40
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Dostal
matesax:23.2.2013 15:41

Což jsem psal - nač ref...

 
Nahoru Odpovědět
23.2.2013 15:41
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.