Märkus.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida sisse logida või kausta vahetada.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida kausta vahetada.
Kehtib järgmise kohta: Lõuendirakendused
Mudelipõhised rakendused
Hindab mitut valemit samaaegselt.
Kirjeldus
Funktsioon Concurrent võimaldab samal atribuudil määratud mitut sama atribuudiga määratud valemit hinnata üheaegselt, kui neil on konnektori- või andmekutsed. Tavaliselt hinnatakse mitut valemit, ühendades need tehtemärgiga ; (semikoolon), mis hindab iga valemit järjestikku. Funktsiooni abil Concurrent hindab rakendus kõiki atribuudis olevaid valemeid samaaegselt ka pärast tehtemärgi ; kasutamist. See samaaegsus aitab kasutajatel sama tulemust vähem oodata.
Kasutage Concurrent rakenduse atribuudis OnStart jõudluse parandamiseks, kui rakendus laadib andmeid. Kui andmesidekõned ei käivitu enne eelmiste kõnede lõpuleviimist, peab rakendus ootama kõigi taotluseaegade summat. Kui andmesidekõned algavad samal ajal, peab rakendus ootama ainult pikimat taotluseaega. Veebibrauserid parandavad sageli jõudlust, teostades võrgukutseid samaaegselt.
Te ei saa ennustada, millises järjestuses funktsiooni valemid algavad ja lõppevad Concurrent hindamisega. Funktsiooni valemid Concurrent ei tohiks sisaldada sõltuvusi sama Concurrent funktsiooni teiste valemite kohta ja Power Apps kuvab vea, kui proovite. Seestpoolt saate turvaliselt sõltuvusi valemitest väljaspool Concurrent funktsiooni kasutada, kuna need viiakse lõpule enne funktsiooni käivitamist Concurrent . Valemid pärast Concurrent funktsiooni võivad valemitest vabalt sõltuda: need kõik viiakse lõpule enne Concurrent , kui funktsioon lõpetab ja liigub edasi järgmisele valemile ahelas (kui kasutate tehtemärki ; ). Vaadake peeneid tellimuse sõltuvusi, kui kutsute funktsioonide või teenuste meetodeid, millel on kõrvalmõjud.
Ahelvalemeid saate aheldada koos tehtemärgiga ; argumendis to Concurrent. Näiteks Concurrent( Set( a, 1 ); Set( b, a+1 ), Set( x, 2 ); Set( y, x+2 ) väärtustab Set( a, 1 ); Set( b, a+1 ) samaaegselt set ( x, 2 ); Set( y, x+2 ). Sellisel juhul on valemites sisalduvad sõltuvused korras: a määratakse enne b-d ja x enne y-t.
Olenevalt sellest, millises seadmes või brauseris rakendus töötab, võib vaid vähe valemeid tegelikult olla samaaegselt hinnatud. Concurrent kasutab saadaolevaid võimalusi ja ei lõpeta enne, kui kõik valemid on hinnatud.
Kui lubate valemitaseme veahalduse (täpsemates sätetes), tagastatakse argumendijärjestuses ilmnenud esimene tõrge: Concurrentvastasel juhul tagastatakse tühi väärtus. Kui kõik valemid on lõpule viidud, tagastatakse väärtus tõene. Kui üks valem nurjub, siis selle valemi ülejäänud peatub, kuid teised valemid jätkavad hindamist.
Saate kasutada Concurrent ainult käitumisvalemites.
Süntaks
Concurrent( Valem1, valem2 [, ...] )
- Valemid – nõutav. Samaaegselt hindamise valemid. Peate sisestama vähemalt kaks valemit.
Näited
Kuupäeva laadimine kiiremini
Looge rakendus ja lisage neli andmeallikat Microsoft Dataverse'ist, SQL Serverist või SharePoint.
Selles näites kasutatakse nelja tabelit proovi Adventure Worksi andmebaasist SQL Azure'is. Pärast andmebaasi loomist looge ühendus sellega Power Appsist, kasutades täielikult kvalifitseeritud serveri nime (nt srvname.database.windows.net).
Lisage juhtelement Button ja määrake selle atribuudi OnSelect väärtus järgmisele valemile:
ClearCollect( Product, '[SalesLT].[Product]' ); ClearCollect( Customer, '[SalesLT].[Customer]' ); ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ); ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' )Rakenduses Microsoft Edge või Google Chrome lülitage sisse arendajate tööriistad, et jälgida võrguliiklust, kui teie rakendus töötab.
(valikuline) Lülitage sisse võrkude ahendamine, et suurendada selle võrdluse mõjusid.
Hoides all muuteklahvi (ALT), valige nupp ja jälgige võrguliiklust.
Tööriistad näitavad sarjas nelja taotlust, mis on sarnased selle näitega. Tegelikud ajad on eemaldatud, kuna need erinevad metsikult. Diagramm näitab, et iga kõne algab pärast viimase lõpuleviimist.
Salvestage, sulgege ja avage rakendus uuesti.
Power Apps salvestab andmed vahemällu, nii et nupu uuesti valimine ei pruugi põhjustada nelja uut taotlust. Iga kord, kui soovite jõudlust testida, sulgege rakendus ja avage see siis uuesti. Kui olete lülitanud võrgu ahendamise sisse, võibolla tahate selle välja lülitada, kuni olete uue testi jaoks valmis.
Lisage teine juhtelement Button ja määrake selle atribuudi OnSelect väärtus järgmisele valemile:
Concurrent( ClearCollect( Product, '[SalesLT].[Product]' ), ClearCollect( Customer, '[SalesLT].[Customer]' ), ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ), ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' ) )Pange tähele, et lisasite esimesele nupule samad ClearCollect-kõned , kuid need on funktsioonis Concurrent mähitud ja seekord eraldatud komaga.
Tühjendage võrgu kuvar brauseris.
Kui kasutasite enne võrgu ahendamist, siis lülitage see uuesti sisse.
Hoides all muuteklahvi (ALT), valige teine nupp ja jälgige võrguliiklust.
Tööriistad näitavad samaaegselt tehtud nelja taotlust, mis on sarnased selle näitega. Jällegi on tegelikud ajad eemaldatud, kuna need erinevad metsikult. Graafik näitab, et kõik kõned algavad umbes samal ajal ja ei pea ootama, kuni eelmine kõne lõpeb.
Need graafikud põhinevad samal skaalal. I abil Concurrentvähendasite poole võrra nende toimingute lõpuleviimise aega.
Salvestage, sulgege ja avage rakendus uuesti.
Võistluse tingimus
Lisage oma rakendusele ühendus Microsoft Translatori teenusega.
Lisage juhtelement Text input ja nimetage see TextInput1, kui see on mõne muu nimega.
Lisage juhtelement Nupp ja seadke selle atribuudi OnSelect väärtus järgmisele valemile:
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 } )Lisage juhtelement Andmetabel ja seadke selle atribuudi Üksused väärtus Tulemitele.
Prema paani vahekaardil Atribuudid valige käsk Redigeeri välju, et avada paan Väljad.
Märkige väljade loendis iga välja märkeruut, et kuvada neid kõiki andmetabelis.
(valikuline) Lohistage väli Sisend loendi ülaossa ja lohistage väli FrenchFaster loendi lõppu.
Juhtelemendis Tekstisisend tippige või kleepige fraas, mida soovite tõlkida.
Hoides all muuteklahvi (ALT), valige tabeli täitmiseks mitu korda nuppu.
Kellaajad kuvatakse millisekundites.
Mõnel juhul on prantsuskeelne tõlge kiirem kui saksakeelne ja vastupidi. Mõlemad algavad samal ajal, kuid üks neist tagastab enne teist erinevatel põhjustel, sh võrgu latentsusajal ja serveripoolsel töötlemisel.
Võistlus võib ilmneda juhul, kui rakendus sõltub esimesena lõppevast tõlkest. Õnneks märgib Power Apps lipuga kõige ajastatavamad sõltuvused, mida ta saab tuvastada.