Trochu to upresnim. 1)Cil 1 navrnout DP (muzeme tak prenaset data mezi Px = P1 ,P2 ,... kde x=<1,x> Pritom obecne Px muze byt jak ve VB.net tak C++, VB6 a podobne . Pro priklad je vhodne zustat u vb.net) DP bych ocekaval v RAM kvuli rychlosti prenosu, pricemz se musi navrhnout zpusob jak programy Px nezavisle zjisti , ze DP existuje a pokud neexistuje tak ho prvni kery to stihne zalozi ostatni se jen podileji (nechci to presneji konkretizovat , protoze je mozne ,ze existuje i reseni o kterem jsem netusil, abych Vas neovlivnil pri reseni. Bezne by kazdemu programu mela stacit informace o nazvu oblasti s jejiz pomoci zjisti pointer odkud muze manipulovat s daty. Pokud jde o virtualni pamet pak kazdy z Px muze mit jiny pointer a presto ve vysledku smeruje do DP Dale by mel vedet jaka je velikost oblasti DP v bytech Dale by z nazvu zamku mel aktivovat objekt ktery zamek zajisti.) 2)V case prenosu ma jen jediny program pravo manipulovat s DP ostatni Px cekaji. Co se tyka ukazky tak to zjednodusim P1 bezny programek s oknem Textbox 'povoleno multiline a tlacitkem Start s funkci prenes data a tlacitkem Start1 s funkci vygeneruj , zobraz a prenes data vlaknem a checkboxem ktery v pripade zatrzeni generuje vygeneruje , zobrazi a prenese data vlaknem v nejake frekvenci cyklu data pro prenos dim T() as date 'Je rozumne prenaset t v ticks t(0).ticks - delka 8 byte 'z ticku zpet t(0)=new date(ticky) dim S() as string 'pozor na stringy v cili je jen pointer do pameti kde je odkaz dale dim D() as double 'but to prenest jako bstring (pak pointer dim L() as long 'ukazuje na data , pointer-4 ukazuje na 4byte ktere obsahuji delku ) dim I() as integer dim B() as byte dim Citac as long sub init dim N as integer=5 redim T(N) redim S(N) redim D(N) redim L(N) redim I(N) redim B(N) call Generuj Call Zobraz end sub sub Generuj 'nejaka fce ktera naplni nahodne vsechna pole 'v praktickem pouziti to muzou byt data, ktere chceme z ruznych duvodu prenes do uplne 'jineho programu v nasem pripade pro P2 Citac=Citac+1 end sub Sub Zobraz 'nejaka fce ktera zobrazi vsechny pole + citac v Textbox end sub spustim program po inicializaci programove nebo rucne v P1 vygeneruji pole+citac, zobrazim a vytvorim vlakno ktere zajisti prenos do DP s ochranou zamku. navrat z vlakna se da detekovat a zobrazit ze vlakno probehlo a s jakym uspechem (je vice metod jak to zajistit callback si nechte radeji na pozdeji) Program P2 prijemce Na formulari stejne TextBox okno jako v P1 Spustim program zalozim dim Mcitac as long =0 zalozim vlakno ktere pocka na data v DP pokud citac ve clakne <> Mcitac =dorazily nove data data predam do bezne casti a indikuji ,ze data jsou nove k dispozici (predani dat pro hlavni cast musim udelat tak ,aby nekolidovaly(taky drobny zamecek)) Mcitac= citac ve clakne vlakno se vraci na zacatek, aby moho precist nove data z DP hlavni cast jsou nove data - ano - poznac ze prave ctu (zamecek) zobrazim data v TextBox odemknu zamecek (pro jednoduchost tam dejme timer na rozpoznani proporku novych dat 100 ms) Snad je to jednoduche pro priklad. S pozdravem Bob
|