Jagamisviis:


Samaaegne funktsioon

Kehtib: lõuendirakendused Mudelipõhised rakendused

Hindab mitut valemit samaaegselt.

Kirjeldus

Funktsioon Samaaegne võimaldab samal ajal hinnata mitut sama atribuudiga määratud valemit, kui neil on konnektor või Dataverse’i kutsed. Tavaliselt hinnatakse mitut valemit, ühendades need tehtemärgiga ; (semikoolon), mis hindab iga valemit järjestikku. Funktsiooniga Concurrent hindab rakendus kõiki valemeid atribuudis samaaegselt isegi pärast operaatori „;” kasutamist. Samaaegsus võimaldab kasutajatel oodata vähe sama tulemuse puhul.

Kasutage oma rakenduse atribuudi OnStart funktsiooni Samaaegne 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 järjekorda, milles funktsioon Concurrent käivitab ja lõpetab hindamist. Concurrent funktsiooni valemid ei tohi sisaldada sõltuvusi muudest valemitest samas Concurrent funktsioonis ja Power Appsis kuvatakse tõrge, kui proovite. Rakenduses saate ohutult võtta sõltuvusi väljaspool Concurrent funktsiooni asuvatest valemitest, kuna need viiakse lõpule enne Concurrent funktsiooni käivitamist. Valemid pärast Concurrent funktsiooni saavad ohutult võtta sõltuvusi valemite sees: nad kõik on valmis enne, kui Concurrent funktsioon lõpule jõuab 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.

Valemeid saate ahelasse seada ; tehtemärgiga funktsiooni Samaaegne argumendis. Näiteks funktsioon Concurrent( Set( a, 1 ); Set( b, a+1 ), Set( x, 2 ); Set( y, x+2 ) ) hindab 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. Samaaegne kasutab saadaolevaid võimalusi ega lõpeta enne, kui kõik valemid on hinnatud.

Kui lubate valiku Valemi taseme tõrkehaldus (täpsemates sätetes), siis esimene argumendi tellimuses ilmnenud tõrge tagastatakse funktsioonist Samaaegne; muul juhul tagastatakse tühi. 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 funktsiooni Samaaegne ainult käitumise valemites.

Süntaks

Samaaegne( valem1,valem2 [, ...] )

  • Valemid – nõutav. Samaaegselt hindamise valemid. Peate sisestama vähemalt kaks valemit.

Näited

Kuupäeva laadimine kiiremini

  1. 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).

    Azure’is Adventure Works andmebaasiga ühendamine.

  2. 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]' )
    
  3. Rakenduses Microsoft Edge või Google Chrome lülitage sisse arendajate tööriistad, et jälgida võrguliiklust, kui teie rakendus töötab.

  4. (valikuline) Lülitage sisse võrkude ahendamine, et suurendada selle võrdluse mõjusid.

  5. 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 muutuvad väga palju. Diagramm näitab, et iga kõne algab pärast viimase lõpuleviimist.

    Nelja võrgutaotluse ajakava, millest igaüks algab pärast viimase lõppu, hõlmates kogu ajavahemiku.

  6. 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.

  7. 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 samad ClearCollect kõned lisatakse esimesele nupule, kuid nad on mähitud funktsiooni Concurrent ja eraldatakse seekord komaga.

  8. Tühjendage võrgu kuvar brauseris.

  9. Kui kasutasite enne võrgu ahendamist, siis lülitage see uuesti sisse.

  10. 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älle on tegelikud ajad eemaldatud, kuna need muutuvad väga palju. Graafik näitab, et kõik kõned algavad umbes samal ajal ja ei oota eelmise lõpuleviimist.

    Nelja võrgutaotluse ajagraafik, kus kõik neli algavad koos, hõlmavad ligikaudu poole ajavahemikust.

    Need graafikud põhinevad samal skaalal. Funktsiooni Samaaegne kasutamisel vähendasite poole võrra ajavahemikku, mis oli nende toimingute lõpuleviimiseks kulunud.

  11. Salvestage, sulgege ja avage rakendus uuesti.

Võistluse tingimus

  1. Lisage oma rakendusele ühendus Microsoft Translatori teenusega.

  2. Lisage juhtelement Text input ja nimetage see TextInput1, kui see on mõne muu nimega.

  3. 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
        }
    )
    
  4. Lisage juhtelement Andmetabel ja seadke selle atribuudi Üksused väärtus Tulemitele.

  5. Prema paani vahekaardil Atribuudid valige käsk Redigeeri välju, et avada paan Väljad.

  6. Märkige väljade loendis iga välja märkeruut, et kuvada neid kõiki andmetabelis.

  7. (valikuline) Lohistage väli Sisend loendi ülaossa ja lohistage väli FrenchFaster loendi lõppu.

    Tulemite kogumi väljade loend.

  8. Juhtelemendis Tekstisisend tippige või kleepige fraas, mida soovite tõlkida.

  9. Hoides all muuteklahvi (ALT), valige tabeli täitmiseks mitu korda nuppu.

    Kellaajad kuvatakse millisekundites.

    Andmetabeli kuvamine, mis sisaldab stringi

    Mõnel juhul on prantsuskeelne tõlge kiirem kui saksakeelne ja vastupidi. Mõlemad algavad samal ajal, kuid üks naaseb enne teist erinevatel põhjustel, sh võrgu latentsus ja serveripoolne töötlemine.

    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.