opomba,
Dostop do te strani zahteva pooblastilo. Poskusite se vpisati alispremeniti imenike.
Dostop do te strani zahteva pooblastilo. Poskusite lahko spremeniti imenike.
Velja za: Aplikacije na platnu
, ki jih poganja model
Ovrednoti več formul sočasno eno z drugo.
Description
Funkcija Concurrent omogoča, da se več formul, navedenih v isti lastnosti, ovrednoti hkrati, če imajo povezovalnik ali dataverse klice. Običajno je več formul ovrednotenih z veriženjem z operaterjem ; (podpičje), ob čemer se vsaka ovrednoti zaporedno. S funkcijo Concurrent bo aplikacija ovrednotila vse formule v lastnosti sočasno tudi po uporabi operatorja ; . Ta hkratnost pomaga uporabnikom, da manj počakajo na isti rezultat.
V lastnosti OnStart aplikacije uporabite za izboljšanje Concurrent učinkovitosti delovanja, ko aplikacija naloži podatke. Ko se priklici podatkov ne začnejo, dokler se prejšnji klici ne končajo, mora aplikacija počakati na vsoto vseh časov zahtev. Če se priklici podatkov začnejo ob istem času, mora aplikacija počakati samo za čas najdaljše zahteve. Spletni brskalniki pogosto izboljšajo učinkovitost delovanja s hkratno izvedbo omrežnih klicev.
Ne morete predvideti zaporedja, v katerem se formule v začetnem Concurrent in končnem vrednotenju funkcije. Formule v funkciji Concurrent ne smejo Concurrent vsebovati odvisnosti od drugih formul v isti funkciji, power apps pa prikaže napako, če poskusite. Od znotraj lahko varno prevzamete odvisnosti od formul zunaj Concurrent funkcije, saj se dokončajo pred zagonom Concurrent funkcije. Formule po tem Concurrent , ko lahko funkcija varno prevzame odvisnosti od formul v: Concurrent vse bodo dokončane, preden se funkcija dokonča in se premakne na naslednjo formulo v verigi (če uporabljate operator ; ). Pazite na majhne odvisnosti zaporedja, če prikličete funkcije ali načine storitve, ki imajo neželene učinke.
Formule lahko združite z operatorjem ; v argumentu do Concurrent. Na primer (Concurrent Set( a, 1 ); Set( b, a+1 ), Set( x, 2 ); Set( y, x+2 ) ovrednotiNabor( a, 1 ); Set( b, a +1 ) sočasno z Set( x, 2 ); Set( y, x+2 ). V tem primeru so odvisnosti v formulah ustrezne: a bo nastavljeno pred b in x bo nastavljeno pred y.
Odvisno od naprave ali brskalnika, v katerih se aplikacija izvaja, je samo peščica formula lahko dejansko ovrednotena sočasno. Concurrent uporablja razpoložljive zmogljivosti in se ne bo dokončala, dokler ne bodo ocenjene vse formule.
Če omogočite upravljanje napak na ravni formule (v dodatnih nastavitvah), je vrnjena prva napaka v vrstnem redu argumenta Concurrent; v nasprotnem primeru je vrnjena prazna napaka. Če so vse formule uspešne, je vrnjeno true. Če ena formula ne uspe, se preostanek te formule ustavi, ostale formule pa nadaljujejo z vrednotenjem.
Uporabite lahko le Concurrent v formulah vedenja.
Sintaksa
Concurrent( Formula1, Formula2 [, ...] )
- Formule – obvezno. Formule za sočasno vrednotenje. Navesti morate vsaj dve formuli.
Primeri
Hitrejše nalaganje podatkov
Ustvarite aplikacijo in dodajte štiri vire podatkov iz storitve Microsoft Dataverse, SQL Server ali SharePoint.
Ta primer uporablja štiri tabele iz vzorčne zbirke podatkov Adventure Works v storitvi SQL Azure. Ko ustvarite zbirko podatkov, jo povežite iz storitve Power Apps z uporabo popolnoma določenega imena strežnika (na primer, srvname.database.windows.net):
Dodajte kontrolnik Button in nastavite njegovo lastnost OnSelect na to formulo:
ClearCollect( Product, '[SalesLT].[Product]' ); ClearCollect( Customer, '[SalesLT].[Customer]' ); ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ); ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' )V brskalniku Microsoft Edge ali Google Chrome vklopite orodja za razvijalce, da spremljate omrežni promet, medtem ko se aplikacija izvaja.
(Izbirno) Vklopite omejevanje zmogljivosti omrežja, da pretirate učinke te primerjave.
Medtem ko držite tipko Alt, izberite gumb in si nato oglejte omrežni promet.
Orodja prikazujejo štiri zahteve, izvedene v seriji, podobno kot v tem primeru. Dejanski časi so bili odstranjeni, saj se nekoliko razlikujejo. Graf prikazuje, da se vsak klic začne po zadnjem dokončanem klicu:
Shranite, zaprite in znova odprite aplikacijo.
Power Apps shrani podatke v predpomnilnik, zato se s ponovno izbiro gumba ne bodo nujno sprožile štiri nove zahteve. Vsakič, ko želite preskusiti učinkovitost delovanja, zaprite in znova odprite aplikacijo. Če ste vklopili omejevanje zmogljivosti omrežja, bi ga morda raje izklopili, dokler ne boste pripravljeni na drug preskus.
Dodajte drug kontrolnik Button in nastavite njegovo lastnost OnSelect na to formulo:
Concurrent( ClearCollect( Product, '[SalesLT].[Product]' ), ClearCollect( Customer, '[SalesLT].[Customer]' ), ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ), ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' ) )Upoštevajte, da ste prvemu gumbu dodali iste klice ClearCollect , vendar so ti zaviti v funkcijo in Concurrent trenutno ločeni z vejicami.
Počistite nadzor omrežja v brskalniku.
Če ste prej uporabljali omejevanje omrežja, ga znova vklopite.
Medtem ko držite tipko Alt, izberite drug gumb in si nato oglejte omrežni promet.
Orodja prikazujejo štiri zahteve, izvedene sočasno, podobno kot v tem primeru. Tudi dejanski časi so bili odstranjeni, saj se spreminjajo divje. Graf prikazuje, da se vsi klici začnejo ob približno istem času in ne čakajte, da se prejšnji klic dokonča:
Ti grafi temeljijo na isti lestvici. Z uporabo Concurrentste prepolovili skupno količino časa, zahtevanega za dokončanje teh postopkov.
Shranite, zaprite in znova odprite aplikacijo.
Stanje tekme
Dodajte povezavo do storitve Microsoft Translator v vašo aplikacijo.
Dodajte kontrolnik Text input in ga preimenujte v TextInput1, če ima drugo ime.
Dodajte kontrolnik Button in nastavite njegovo lastnost OnSelect na to formulo:
Set( StartTime, Value( Now() ) ); Concurrent( Set( FRTrans, MicrosoftTranslator.Translate( TextInput1.Text, "fr" ) ); Set( FRTransTime, Value( Now() ) ), Set( DETrans, MicrosoftTranslator.Translate( TextInput1.Text, "de" ) ); Set( DETransTime, Value( Now() ) ) ); Collect( Results, { Input: TextInput1.Text, French: FRTrans, FrenchTime: FRTransTime - StartTime, German: DETrans, GermanTime: DETransTime - StartTime, FrenchFaster: FRTransTime < DETransTime } )Dodajte kontrolnik Data table in nastavite lastnost Items na Rezultati.
Na zavihku Lastnosti desnega podokna izberite Urejanje polj, da odprete podokno Polja.
V seznamu polj izberite potrditveno polje za vsako polje, da vsa prikažete v podatkovni tabeli.
(Izbirno) Povlecite polje Vnos na vrh seznama in povlecite polje FrenchFaster na dno seznama.
V kontrolnik Text input vnesite ali prilepite besedno zvezo za prevod.
Medtem ko držite tipko Alt, večkrat izberite gumb, da izpolnite tabelo.
Časi so prikazani v milisekundah.
V nekaterih primerih je francoski prevod hitrejši od nemškega prevoda in obratno. Obe se začneta hkrati, vendar se eden vrne pred drugim iz različnih razlogov, vključno z zakasnitvijo omrežja in obdelavo na strani strežnika.
Do stanja tekme bi prišlo, če bi se aplikacija zanašala na to, da bo en prevod prej končan. Na srečo Power Apps označi večino časovnih odvisnosti, ki jih lahko zazna.