{"id":8297,"date":"2025-02-10T08:33:40","date_gmt":"2025-02-10T08:33:40","guid":{"rendered":"https:\/\/howtogeek.blog\/lv\/?p=8297"},"modified":"2025-02-10T08:33:40","modified_gmt":"2025-02-10T08:33:40","slug":"resolution-for-error-no-yield-performed-721-0x2d1-follow-these-4-step-guide","status":"publish","type":"post","link":"https:\/\/howtogeek.blog\/lv\/resolution-for-error-no-yield-performed-721-0x2d1-follow-these-4-step-guide\/","title":{"rendered":"Risin\u0101jums k\u013c\u016bdai, kas nav veikta 721 (0x2D1): izpildiet \u0161os 4\u00a0pak\u0101pju nor\u0101d\u012bjumus"},"content":{"rendered":"<p>Probl\u0113ma <strong>ERROR_NO_YIELD_PERFORMED<\/strong> bie\u017ei rada probl\u0113mas izstr\u0101d\u0101t\u0101jiem, trauc\u0113jot vi\u0146u koda izpildes pl\u016bsmu. Iedzi\u013cin\u0101simies efekt\u012bv\u0101s strat\u0113\u0123ij\u0101s, lai nov\u0113rstu un atrisin\u0101tu \u0161o tehnisko \u0161\u0137\u0113rsli. Pamatc\u0113lo\u0146u izpratne var b\u016bt \u013coti svar\u012bga, lai uzlabotu pavedienu p\u0101rvald\u012bbu programm\u0101 C++ un nodro\u0161in\u0101tu vienm\u0113r\u012bgu izstr\u0101des pieredzi.<\/p>\n<h2 id=\"h-how-can-i-fix-error-no-yield-performed\">K\u0101 labot ERROR_NO_YIELD_PERFORMED<\/h2>\n<h3 id=\"h-1-check-thread-priority\">1. Nov\u0113rt\u0113jiet un piel\u0101gojiet pavediena priorit\u0101ti<\/h3>\n<ul>\n<li>S\u0101ciet, p\u0101rbaudot kodu b\u0101z\u0113 pavedienu p\u0101rvald\u012bbas ievie\u0161anu.<\/li>\n<li>Ja izmantojat Windows API, piel\u0101gojiet pavediena priorit\u0101ti:<br \/>\n<blockquote>\n<p> <code><strong>SetThreadPriority(hThread, THREAD_PRIORITY_NORMAL);<\/strong><\/code><\/p>\n<\/blockquote>\n<\/li>\n<li>Gad\u012bjumos, kad nepiecie\u0161ama liel\u0101ka atsauc\u012bba, apsveriet priorit\u0101tes paaugstin\u0101\u0161anu:<br \/>\n<blockquote>\n<p> <code><strong>SetThreadPriority(hThread, THREAD_PRIORITY_ABOVE_NORMAL);<\/strong><\/code><\/p>\n<\/blockquote>\n<\/li>\n<li>Vienm\u0113r p\u0101rskatiet pavedienu priorit\u0101tes mai\u0146as sekas, jo tas var ietekm\u0113t citu procesu veiktsp\u0113ju.<\/li>\n<\/ul>\n<h3 id=\"h-2-avoid-using-unnecessary-sleep-calls\">2. Samaziniet nevajadz\u012bgus miega zvanus<\/h3>\n<ul>\n<li>Atveriet galveno koda segmentu.<\/li>\n<li>Mekl\u0113jiet gad\u012bjumus <code><strong>Sleep(0);<\/strong><\/code>un aizst\u0101jiet tos ar <strong>miega re\u017e\u012bmu (1);<\/strong><\/li>\n<li>Ieviesiet <code><strong>SwitchToThread();<\/strong><\/code>p\u0101rdom\u0101ti, nodro\u0161inot, ka izmantojat atk\u0101p\u0161an\u0101s meh\u0101nismu, k\u0101 nor\u0101d\u012bts t\u0101l\u0101k.<br \/>\n<blockquote>\n<p> <code><strong>if (!SwitchToThread()) { Sleep(1); \/\/ Fallback if no threads are waiting }<\/strong><\/code><\/p>\n<\/blockquote>\n<\/li>\n<li>P\u0113c korekciju veik\u0161anas atk\u0101rtoti kompil\u0113jiet lietojumprogrammu, lai nov\u0113rt\u0113tu k\u013c\u016bdu nov\u0113r\u0161anu.<\/li>\n<\/ul>\n<h3 id=\"h-3-verify-thread-availability\">3. Apstipriniet pavediena pieejam\u012bbu<\/h3>\n<ul>\n<li>S\u0101ciet, p\u0101rskatot savu kodu, lai izsekotu visiem pavedienu lietojumiem.<\/li>\n<li>Ja izmantojat C++ v\u012bt\u0146u kopu, p\u0101rliecinieties, ka tas nep\u0101rsniedz jaudu, p\u0101rbaudot:<br \/>\n<blockquote>\n<p> <code><strong>std::thread::hardware_concurrency();<\/strong><\/code><\/p>\n<\/blockquote>\n<\/li>\n<li>Eksperiment\u0113jiet ar pieejamo pavedienu skaita palielin\u0101\u0161anu un nov\u0113rt\u0113jiet, vai \u0161\u012b modifik\u0101cija mazina probl\u0113mu.<\/li>\n<\/ul>\n<h3 id=\"h-4-other-tips-to-try\">4. Papildu probl\u0113mu nov\u0113r\u0161anas ieteikumi<\/h3>\n<ul>\n<li>P\u0101rliecinieties, vai j\u016bsu oper\u0113t\u0101jsist\u0113ma un draiveri ir atjaunin\u0101ti uz jaun\u0101kaj\u0101m versij\u0101m.<\/li>\n<li>Analiz\u0113jiet resursu pat\u0113ri\u0146u, izmantojot uzdevumu p\u0101rvaldnieku. Darba slodzes samazin\u0101\u0161ana, aizverot nevajadz\u012bg\u0101s lietojumprogrammas, var atbr\u012bvot svar\u012bgus resursus.<\/li>\n<li>Izmantojiet <strong>Process Explorer<\/strong>, lai padzi\u013cin\u0101ti nov\u0113rt\u0113tu iestr\u0113gu\u0161us vai blo\u0137\u0113tus pavedienus.<\/li>\n<li>Izmantojiet <strong>Windows Performance Analyzer, <\/strong> lai veiktu detaliz\u0113tu izseko\u0161anu un nov\u0113rt\u0113tu CPU pl\u0101no\u0161anas efektivit\u0101ti.<\/li>\n<li>Iek\u013caujiet <strong>GetLastError(), <\/strong> lai re\u0123istr\u0113tu probl\u0113mas un ieg\u016btu papildu kontekstu k\u013c\u016bdu zi\u0146ojumos.<\/li>\n<\/ul>\n<p>Sekojiet l\u012bdzi <strong>ERROR_NO_YIELD_PERFORMED<\/strong> kodam, ko bie\u017ei nor\u0101da zi\u0146ojums, piem\u0113ram, &#8220;721 (0x2D1) Tika veikta ienes\u012bguma izpilde un palai\u0161anai nebija pieejams pavediens&#8221;.\u0160o k\u013c\u016bdu t\u016bl\u012bt\u0113ja nov\u0113r\u0161ana ir b\u016btiska, lai uzlabotu lietojumprogrammas veiktsp\u0113ju.<\/p>\n<h2>Bie\u017ei uzdotie jaut\u0101jumi<\/h2>\n<h3><strong>1. Ko nor\u0101da ERROR_NO_YIELD_PERFORMED?<\/strong><\/h3>\n<p>ERROR_NO_YIELD_PERFORMED rodas <strong>, <\/strong> ja pavediens ir izpild\u012bjis, bet neviens cits pavediens nav pieejams palai\u0161anai, nor\u0101dot, ka j\u016bsu lietojumprogramm\u0101 var b\u016bt resursu p\u0101rvald\u012bbas probl\u0113mas.<\/p>\n<h3><strong>2. K\u0101 pavedienu priorit\u0101te var ietekm\u0113t manas lietojumprogrammas veiktsp\u0113ju?<\/strong><\/h3>\n<p>Pavediena priorit\u0101te ietekm\u0113 to, k\u0101 oper\u0113t\u0101jsist\u0113ma pie\u0161\u0137ir resursus starp konkur\u0113jo\u0161iem pavedieniem. Pavedienu priorit\u0101\u0161u piel\u0101go\u0161ana var uzlabot kritisko procesu atsauc\u012bbu, ta\u010du t\u0101 ir r\u016bp\u012bgi j\u0101p\u0101rvalda, lai izvair\u012btos no zem\u0101kas priorit\u0101tes pavedienu bada.<\/p>\n<h3><strong>3. Kad man vajadz\u0113tu izmantot SwitchToThread(), nevis Sleep()?<\/strong><\/h3>\n<p>Izmantojiet <strong>SwitchToThread()<\/strong>, ja v\u0113laties br\u012bvpr\u0101t\u012bgi nodot CPU citiem pavedieniem, kuru darb\u012bba ir iepl\u0101nota. Turpretim izmantojiet <strong>Sleep()<\/strong>, ja v\u0113laties uz noteiktu laiku aptur\u0113t pa\u0161reiz\u0113jo pavedienu. Neizmantojiet miega re\u017e\u012bmu (0), jo tas var izrais\u012bt nevajadz\u012bgu konteksta mai\u0146u.<\/p>\n<p><a class=\"xiaomi\" href=\"https:\/\/windowsreport.com\/error-no-yield-performed\/\" rel=\"noopener noreferrer nofollow\" target=\"_blank\">Avots un att\u0113li<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Probl\u0113ma ERROR_NO_YIELD_PERFORMED bie\u017ei rada probl\u0113mas izstr\u0101d\u0101t\u0101jiem, trauc\u0113jot vi\u0146u koda izpildes pl\u016bsmu. Iedzi\u013cin\u0101simies efekt\u012bv\u0101s strat\u0113\u0123ij\u0101s, lai nov\u0113rstu un atrisin\u0101tu \u0161o tehnisko \u0161\u0137\u0113rsli. Pamatc\u0113lo\u0146u izpratne var b\u016bt \u013coti svar\u012bga, lai uzlabotu pavedienu p\u0101rvald\u012bbu programm\u0101 C++ un nodro\u0161in\u0101tu vienm\u0113r\u012bgu izstr\u0101des pieredzi. K\u0101 labot ERROR_NO_YIELD_PERFORMED 1. Nov\u0113rt\u0113jiet un piel\u0101gojiet pavediena priorit\u0101ti S\u0101ciet, p\u0101rbaudot kodu b\u0101z\u0113 pavedienu p\u0101rvald\u012bbas ievie\u0161anu. Ja [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[9],"class_list":["post-8297","post","type-post","status-publish","format-standard","hentry","category-how-to","tag-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/howtogeek.blog\/lv\/wp-json\/wp\/v2\/posts\/8297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/howtogeek.blog\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/howtogeek.blog\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/howtogeek.blog\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/howtogeek.blog\/lv\/wp-json\/wp\/v2\/comments?post=8297"}],"version-history":[{"count":1,"href":"https:\/\/howtogeek.blog\/lv\/wp-json\/wp\/v2\/posts\/8297\/revisions"}],"predecessor-version":[{"id":8298,"href":"https:\/\/howtogeek.blog\/lv\/wp-json\/wp\/v2\/posts\/8297\/revisions\/8298"}],"wp:attachment":[{"href":"https:\/\/howtogeek.blog\/lv\/wp-json\/wp\/v2\/media?parent=8297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/howtogeek.blog\/lv\/wp-json\/wp\/v2\/categories?post=8297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/howtogeek.blog\/lv\/wp-json\/wp\/v2\/tags?post=8297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}