{"id":6686,"date":"2022-09-04T15:55:31","date_gmt":"2022-09-04T10:25:31","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/"},"modified":"2022-09-04T15:55:31","modified_gmt":"2022-09-04T10:25:31","slug":"solved-how-to-optimize-and-speed-up-this-operation","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/","title":{"rendered":"[Solved] How to optimize and speed up this operation"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-36782350\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"36782350\" data-parentid=\"36782067\" data-score=\"1\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<pre><code>List&lt;Customer&gt; customers = GetCustomers(\"ACT\");\nTask[] tasks = new Task[MaxNumOfConcurrentSaves];\nWhile(customers.Length &gt; 0)\n{\n     for(int i = 0; i &lt; MaxNumOfConcurrentTasks; i++){\n            tasks[i] = SaveCustomerData(customers[i]);\n            customers[i] = null;\n     }\n     customers = List.FindAll&lt;Customer&gt;(customers, aCust =&gt; !(aCust == null));\n     Task.AwaitAll(tasks)\n}\n<\/code><\/pre>\n<p>Ok so here&#8217;s whats happening (and you&#8217;ll have to perfect it for your uses): while we have customers in the list, for every one of them starting at the begining through to the max number of concurrent tasks, start the task to save and set that customer to null. then, after the for loop is over, find all the customer entries in the list that aren&#8217;t null and keep them and await the tasks to complete. if there&#8217;s nothing left in the list then the loop is over and the save process is complete. SaveCustomerData would return a task that executes he actual save code. <\/p>\n<p>If any one sees issues with this code please edit or bring it to my attention. I have not tested it in this capacity but it is similar to something I&#8217;ve done that works.<\/p>\n<p>Edit:<\/p>\n<p>I have recently found something amazing for this task in .Net 4.5 (maybe 4 too, not sure)<\/p>\n<pre><code>List&lt;Customer&gt; customers = GetCustomers(\"ACT\");\nParallel.ForEach(customers, (currentCustomer) =&gt; SaveCustomerData(currentCustomer))\n<\/code><\/pre>\n<p>Same thing, Multithreaded in one line.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">3<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved How to optimize and speed up this operation <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] List&lt;Customer&gt; customers = GetCustomers(&#8220;ACT&#8221;); Task[] tasks = new Task[MaxNumOfConcurrentSaves]; While(customers.Length &gt; 0) { for(int i = 0; i &lt; MaxNumOfConcurrentTasks; i++){ tasks[i] = SaveCustomerData(customers[i]); customers[i] = null; } customers = List.FindAll&lt;Customer&gt;(customers, aCust =&gt; !(aCust == null)); Task.AwaitAll(tasks) } Ok so here&#8217;s whats happening (and you&#8217;ll have to perfect it for your uses): while we &#8230; <a title=\"[Solved] How to optimize and speed up this operation\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/\" aria-label=\"More on [Solved] How to optimize and speed up this operation\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324,1163],"class_list":["post-6686","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-parallel-processing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] How to optimize and speed up this operation - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] How to optimize and speed up this operation - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] List&lt;Customer&gt; customers = GetCustomers(&quot;ACT&quot;); Task[] tasks = new Task[MaxNumOfConcurrentSaves]; While(customers.Length &gt; 0) { for(int i = 0; i &lt; MaxNumOfConcurrentTasks; i++){ tasks[i] = SaveCustomerData(customers[i]); customers[i] = null; } customers = List.FindAll&lt;Customer&gt;(customers, aCust =&gt; !(aCust == null)); Task.AwaitAll(tasks) } Ok so here&#8217;s whats happening (and you&#8217;ll have to perfect it for your uses): while we ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-04T10:25:31+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] How to optimize and speed up this operation\",\"datePublished\":\"2022-09-04T10:25:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/\"},\"wordCount\":186,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"parallel-processing\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/\",\"name\":\"[Solved] How to optimize and speed up this operation - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-09-04T10:25:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] How to optimize and speed up this operation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] How to optimize and speed up this operation - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] How to optimize and speed up this operation - JassWeb","og_description":"[ad_1] List&lt;Customer&gt; customers = GetCustomers(\"ACT\"); Task[] tasks = new Task[MaxNumOfConcurrentSaves]; While(customers.Length &gt; 0) { for(int i = 0; i &lt; MaxNumOfConcurrentTasks; i++){ tasks[i] = SaveCustomerData(customers[i]); customers[i] = null; } customers = List.FindAll&lt;Customer&gt;(customers, aCust =&gt; !(aCust == null)); Task.AwaitAll(tasks) } Ok so here&#8217;s whats happening (and you&#8217;ll have to perfect it for your uses): while we ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/","og_site_name":"JassWeb","article_published_time":"2022-09-04T10:25:31+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] How to optimize and speed up this operation","datePublished":"2022-09-04T10:25:31+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/"},"wordCount":186,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","parallel-processing"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/","url":"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/","name":"[Solved] How to optimize and speed up this operation - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-09-04T10:25:31+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-how-to-optimize-and-speed-up-this-operation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] How to optimize and speed up this operation"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/6686","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=6686"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/6686\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=6686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=6686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=6686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}