Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Келесілерге қолданылады: Кенеп бағдарламалары
Үлгіге негізделген бағдарламалар
Бірнеше формуланы бір бірімен бір уақытта есептейді.
Сипаттама
Функция Concurrent бір сипатта көрсетілген бірнеше формулаларды, егер оларда коннектор немесе Dataverse шақырулары болса, бір уақытта бағалауға мүмкіндік береді. Әдетте, бірнеше формула әр формуланы ретпен бағалайтын ; (нүктелі үтір) операторы арқылы тізбектеу арқылы есептеледі. Функцияның көмегімен Concurrent бағдарлама ; операторын пайдаланғаннан кейін де сипат ішіндегі барлық формулаларды бір мезгілде бағалайды. Бұл параллелизм пайдаланушыларға бірдей нәтижені аз күтуге көмектеседі.
Бағдарламаның OnStart сипатында бағдарлама деректерді жүктеген кезде өнімділікті жақсарту үшін пайдаланыңыз Concurrent . Алдыңғы шақырулар аяқталғанша деректерді шақырулар басталмаса, бағдарлама барлық сұраулар санының қосындысын күтуі керек. Деректерді шақырулар бір уақытта басталса, бағдарлама ең ұзын сұрау уақытын ғана күтуі керек. Көбінесе, веб-браузерлер желі қоңырауларын бір уақытта орындау арқылы өнімділікті жақсартады.
Функциядағы Concurrent формулалардың бағалаудың басталуы мен аяқталу ретін болжау мүмкін емес. Функция ішіндегі Concurrent формулаларда сол Concurrent функция ішіндегі басқа формулаларға тәуелділік болмауы керек, ал егер тырыссаңыз, Power Apps бағдарламасы қатені көрсетеді. Іштен сіз функциядан тыс Concurrent формулаларға тәуелділікті қауіпсіз қабылдай аласыз, өйткені олар функция басталғанға дейін Concurrent аяқталады. Функциядан Concurrent кейінгі формулалар ішіндегі формулаларға тәуелділікті қауіпсіз қабылдай алады: олардың барлығы Concurrent функция аяқталғанға дейін аяқталып, тізбектегі келесі формулаға өтпес бұрын аяқталады ( егер ; операторын пайдалансаңыз). Жанама әсерлері бар функцияларды немесе қызметтік әдістерді шақырып жатсаңыз, шағын рет тәуелділіктерін қадағалаңыз.
Формулаларды аргумент ішіндегіConcurrent; операторымен тізбектеуге болады. Мысалы,Concurrent ( Set( a, 1 ); Set( b, a + 1 ), Set( x, 2 ); Set( y, x + 2 ) )Set( a, 1 ); Set( b, a+1 )Set( x, 2 -мен бір мезгілде ); Set( y, x + 2 ). Бұл жағдайда, формулалардағы тәуелділіктер ештеңе етпейді: a мәні b мәнінен бұрын орнатылады әрі x мәні y мәнінен бұрын орнатылады.
Бағдарлама жұмыс істеп жатқан құрылғыға немесе шолғышқа байланысты, аз ғана формулаларды іс жүзінде бір уақытта есептеуге болады. Concurrent Қол жетімді мүмкіндіктерді пайдаланады және барлық формулалар есептелмейінше аяқталмайды.
Формула деңгейіндегі қателерді басқару параметрін қоссаңыз (қосымша параметрлерде), аргументтер ретінде кездесетін алғашқы қате қайтарыладыConcurrent; әйтпесе бос орын қайтарылады. Егер барлық формулалар сәтті болса, true мәні қайтарылады. Егер бір формула сәтсіз аяқталса, бұл формуланың қалған бөлігі тоқтайды, бірақ басқа формулаларды есептеу жалғасады.
Тек мінез-құлық формулаларында пайдалануға Concurrent болады.
Синтаксис
Concurrent( Формула1, Формула2 [, ...] )
- Формулалар – Міндетті. Бір уақытта есептелетін формулалар. Сіз кемінде екі формуланы беруіңіз керек.
Мысалдар
Деректерді тезірек жүктеу
Бағдарлама жасаңыз және Microsoft Dataverse, SQL Server немесе SharePoint ішінен төрт деректер көзін қосыңыз.
Бұл мысалда SQL Azure ішіндегі үлгі Adventure Works дерекқорынан төрт кесте пайдаланылады. Жасағаннан кейін дерекқорға Power Apps ішінен толығымен нақтыланған сервер атауын (мысалы, srvname.database.windows.net) пайдаланып қосылыңыз:
Button басқару элементін қосыңыз және оның OnSelect сипатын мына формулаға орнатыңыз:
ClearCollect( Product, '[SalesLT].[Product]' ); ClearCollect( Customer, '[SalesLT].[Customer]' ); ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ); ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' )Бағдарлама жұмыс істеп тұрғанда желі трафигін бақылау үшін Microsoft Edge немесе Google Chrome шолғышында әзірлеуші құралдарын қосыңыз.
(Міндетті емес) Осы салыстырудың әсерлерін көбейтіп көрсету үшін желіні реттеуді қосыңыз.
Alt пернесін ұстап тұрып, түймешікті таңдаңыз, содан кейін желі трафигін бақылаңыз.
Бұл құралдар осы мысалға ұқсас, қатарынан орындалған төрт сұрауды көрсетеді. Нақты уақыт алынып тасталды, өйткені олар қатты өзгереді. Графикте әр шақыру соңғысы аяқталғаннан кейін басталатыны көрсетілген:
Сақтап, бағдарламаны жауып, қайта ашыңыз.
Power Apps деректерді кэштейді, осылайша түймешікті қайта басу міндетті түрде төрт жаңа сұрауды тудырмайды. Өнімділікті сынағыңыз келген сайын бағдарламаны жауып, қайта ашыңыз. Желіні реттеуді қоссаңыз, тағы бір сынаққа дайын болғанша оны өшіру керек.
Екінші Button басқару элементін қосыңыз және оның OnSelect сипатын мына формулаға орнатыңыз:
Concurrent( ClearCollect( Product, '[SalesLT].[Product]' ), ClearCollect( Customer, '[SalesLT].[Customer]' ), ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ), ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' ) )Бірінші түймешікке бірдей ClearCollect қоңырауларын қосқаныңызды ескеріңіз, бірақ олар функцияға оралып Concurrent , бұл жолы үтірлермен бөлінген.
Шолғыштағы желі мониторын тазалаңыз.
Бұрын желіні реттеуді пайдаланып жүрген болсаңыз, оны қайта қосыңыз.
Alt пернесін ұстап тұрып, екінші түймешікті таңдаңыз, содан кейін желі трафигін бақылаңыз.
Бұл құралдар осы мысалға ұқсас, бір уақытта орындалған төрт сұрауды көрсетеді. Тағы да, нақты уақыт алынып тасталды, өйткені олар қатты өзгереді. Кестеде барлық қоңыраулар шамамен бір уақытта басталып, алдыңғысының аяқталуын күтпейтінін көрсетеді:
Бұл графиктер бірдей масштабқа негізделген. Пайдалану Concurrentарқылы сіз осы операцияларды аяқтауға кететін жалпы уақытты екі есеге қысқарттыңыз.
Сақтап, бағдарламаны жауып, қайта ашыңыз.
Жарыс жағдайы
Бағдарламаға Microsoft Translator қызметімен байланысты қосыңыз.
Мәтінді енгізу басқару элементін қосыңыз және оның аты басқа болса, оны МәтіндіЕнгізу1 деп қайта атаңыз.
Түйме басқару элементін қосыңыз және оның OnSelect сипатын мына формулаға орнатыңыз:
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 } )Data table басқару элементін қосыңыз және оның Элементтер сипатын Нәтижелер ішіне қосыңыз.
Оң тақтаның Сипаттар қойыншасында Өрістер тақтасын ашу үшін Өрістерді өңдеу пәрменін таңдаңыз.
Өрістер тізімінде, барлығын деректер кестесінде көрсету үшін әр өрістің құсбелгісін қойыңыз.
(міндетті емес) Енгізу өрісін тізімнің жоғарғы жағына сүйреңіз және FrenchFaster өрісін тізімнің төменгі жағына сүйреңіз.
Мәтінді енгізу басқару элементінде аударатын тіркесті теріңіз немесе қойыңыз.
Alt пернесін басып тұрып, кестені толтыру үшін түймешікті бірнеше рет басыңыз.
Уақыттар миллисекундтар түрінде көрсетіледі.
Кейбір жағдайларда француз тіліне аудару неміс тіліне аударудан тезірек және керісінше болып тұрады. Екеуі де бір уақытта басталады, бірақ біреуі әртүрлі себептермен, соның ішінде желі кідірісі мен сервер жағындағы өңдеуге байланысты екіншісінен бұрын оралады.
Бағдарлама бір аударманың бірінші аяқталуына тәуелді болғанда, жарыс жағдайы орын алатын еді. Бақытымызға орай, Power Apps өзі анықтай алатын уақыт тәуелділіктерінің көпшілігіне жалаушалар қояды.