Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Yossarian
Založen: 28. 07. 2007 Příspěvky: 274 Bydliště: Šalingrad
|
Zaslal: 13. květen 2009, 15:40:42 Předmět: |
|
|
yield return v CIL vubec neni, c# si pri yield return vytvori tri prdele trid a pomocnych funkci, takze tudy cesta nevede. |
|
Návrat nahoru |
|
|
Mnemonic
Založen: 28. 07. 2007 Příspěvky: 93
|
Zaslal: 13. květen 2009, 19:08:42 Předmět: |
|
|
Nedavno jsem se trosku zajimal o moznosti pouziti C# coby skriptovaciho jazyka, a narazil jsem na dva pristupy.
Jeden je implementace mikrothreadu pomoci modifikovaneho Mono runtime, ktery pridava interni systemove metody, ktere dokazou pozastavit vykonavani programu, ulozit zasobnik, a prepnout se na dalsi mikrothread. Patch ke stazeni tady: http://www.bat.org/~tomba/monoco.html Ted koukam, ze pred par dny pribyla nova verze, tu jsem netestoval. Mam pocit, ze tenhle pristup pouziva Unity3D engine.
Druhy pristup pouziva Second Life, a to ze pomoci RAILS modifikuje vysledny CIL kod, a na vhodna mista vklada dalsi kod, ktery zajisti prepnuti mikrothreadu. Obavam se, ze toho nevim o CLI tolik, abych to dokazal pochopit ale princip je popsan tady: http://secondlife.blogs.com/babbage/2006/05/microthreading_.html |
|
Návrat nahoru |
|
|
Sosarian
Založen: 07. 11. 2007 Příspěvky: 51
|
Zaslal: 13. květen 2009, 22:26:24 Předmět: |
|
|
no za pouziti Mono.Cecil sem tam daval volani staticke metody ktera poustela thread.sleep nez sem chtel jet dal a to celkem fugnovalo, ale je mozny ze se ta assembly pak ulozi jinak nez ma (veskutecnosti me moc nesla nacist ), a "rucne nacitat PE, pridavat tam instrukce, menit vsechny skoky, pridat do tabulky odkaz na tu metodu" by asi trvalo dlouho a Reflection.Emit tohle bohuzel nezvlada
ale je pravda ze takhle bych si mohl napsat vlastni "vlakna", mozna se na to jeste podivam
ale uz sem to prepsal jinak ted to mam tak ze se to pusti jako async eventa a pritom se nastavit ze ta AI premysli, a pokud se ji nepovede dopremyslet do doby nez ubehne urcitej cas tak vynecha jedno "kolo" tzn neprovede se s ni zadna herni logika (jako posouvani, staveni a tak) coz teda je dost jiny nez co sem puvodne psal ze chci, ale veskutecnosti to asi zadny negativni ucinky mit nebude |
|
Návrat nahoru |
|
|
OndraSej
Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
|
Návrat nahoru |
|
|
|