{"id":5516,"date":"2022-08-29T05:24:06","date_gmt":"2022-08-28T23:54:06","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/"},"modified":"2022-08-29T05:24:06","modified_gmt":"2022-08-28T23:54:06","slug":"solved-i-want-to-thread-and-form-work-together-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/","title":{"rendered":"[Solved] I want to Thread and Form work together [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-23184540\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"23184540\" data-parentid=\"23183576\" data-score=\"-1\" data-position-on-page=\"2\" data-highest-scored=\"0\" data-question-has-accepted-highest-score=\"0\" itemprop=\"suggestedAnswer\" 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<p><code>Button1Click<\/code> is stopping the execution of the main thread for 3 seconds.<\/p>\n<p>During the <code>sleep(3000)<\/code> execution, no GDI message is processed, so the dialog boxes are NOT displayed immediately.<\/p>\n<p>In fact, <code>TCustomThread.doProc<\/code> works as expected, but the dialog box is not displayed until the GDI messages are processed.<\/p>\n<p>You have to change this method e.g. into:<\/p>\n<pre><code>procedure TForm1.Button1Click(Sender: TObject);\nvar\n  thrd : TCustomThread;\n  expectedEnd: TDateTime;\nbegin\n  thrd := TCustomThread.Create(True);\n  thrd.Resume;\n  expectedEnd := Now+(1\/24\/60\/60*3); \n  repeat\n    Sleep(50); \/\/ or any long process\n    Application.ProcessMessages; \/\/ to be called to process the GDI messages\n  until Now&gt;=expectedEnd;\n  ShowMessage('Form');\nend;\n<\/code><\/pre>\n<p>In short: never use <code>Sleep()<\/code> in the main GDI thread, for extended period of time (more than some ms), otherwise your application won&#8217;t be responsive any more. And Windows will complain for it and ask you to kill the application!<\/p>\n<p>So in your case, you have to call <code>Application.ProcessMessages<\/code> in your main thread when a long process is taken place (e.g. a <code>TQuery<\/code>), or run the query in a background thread (this is IMHO the preferred method), as we do e.g. for our <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/blog.synopse.info\/post\/2013\/07\/04\/Let-mORmot-s-applications-be-even-more-responsive\">Open Source mORMot framework on client side<\/a>.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">13<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved I want to Thread and Form work together [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Button1Click is stopping the execution of the main thread for 3 seconds. During the sleep(3000) execution, no GDI message is processed, so the dialog boxes are NOT displayed immediately. In fact, TCustomThread.doProc works as expected, but the dialog box is not displayed until the GDI messages are processed. You have to change this method &#8230; <a title=\"[Solved] I want to Thread and Form work together [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/\" aria-label=\"More on [Solved] I want to Thread and Form work together [closed]\">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":[740,884,1409],"class_list":["post-5516","post","type-post","status-publish","format-standard","hentry","category-solved","tag-delphi","tag-multithreading","tag-synchronize"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] I want to Thread and Form work together [closed] - 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-i-want-to-thread-and-form-work-together-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] I want to Thread and Form work together [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] Button1Click is stopping the execution of the main thread for 3 seconds. During the sleep(3000) execution, no GDI message is processed, so the dialog boxes are NOT displayed immediately. In fact, TCustomThread.doProc works as expected, but the dialog box is not displayed until the GDI messages are processed. You have to change this method ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-28T23:54:06+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-i-want-to-thread-and-form-work-together-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] I want to Thread and Form work together [closed]\",\"datePublished\":\"2022-08-28T23:54:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/\"},\"wordCount\":165,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"delphi\",\"multithreading\",\"synchronize\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/\",\"name\":\"[Solved] I want to Thread and Form work together [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-08-28T23:54:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] I want to Thread and Form work together [closed]\"}]},{\"@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=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] I want to Thread and Form work together [closed] - 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-i-want-to-thread-and-form-work-together-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] I want to Thread and Form work together [closed] - JassWeb","og_description":"[ad_1] Button1Click is stopping the execution of the main thread for 3 seconds. During the sleep(3000) execution, no GDI message is processed, so the dialog boxes are NOT displayed immediately. In fact, TCustomThread.doProc works as expected, but the dialog box is not displayed until the GDI messages are processed. You have to change this method ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/","og_site_name":"JassWeb","article_published_time":"2022-08-28T23:54:06+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-i-want-to-thread-and-form-work-together-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] I want to Thread and Form work together [closed]","datePublished":"2022-08-28T23:54:06+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/"},"wordCount":165,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["delphi","multithreading","synchronize"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/","name":"[Solved] I want to Thread and Form work together [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-08-28T23:54:06+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-i-want-to-thread-and-form-work-together-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] I want to Thread and Form work together [closed]"}]},{"@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=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","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\/5516","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=5516"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/5516\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=5516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=5516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=5516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}