{"id":25367,"date":"2022-12-09T18:37:27","date_gmt":"2022-12-09T13:07:27","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/"},"modified":"2022-12-09T18:37:27","modified_gmt":"2022-12-09T13:07:27","slug":"solved-how-can-i-run-two-thread-sleep-in-c-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/","title":{"rendered":"[Solved] How can I run two Thread.sleep In C# [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-20748063\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"20748063\" data-parentid=\"20747639\" data-score=\"0\" 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<p>When I run the example code you provided, the application will run. That is to say, the ball (*) will move around the screen. Are you expecting the ball to move on the screen, and the paddle to be drawn and move when an arrow is pressed? If so, you should look at how you are looping. The issue I see is that you have a loop that draws the ball and your loop will never ends, and therefore your code will not draw the paddle and\/or reflect your arrow key changes. Is your expectation also for the Thread.Sleep to pause the loop and allow you to draw\/move the paddle?<\/p>\n<p>UPDATE:<\/p>\n<pre><code>namespace ConsoleGame\n{    \nclass Ball {\n\n    private static Ball _instance;\n\n    private int _a = 10, _b = 10;\n    private int _dx = 1, _dy = 1;\n\n    private int _timer = 0;\n    private int _milliseconds = 1000;\n\n    private Ball() { }\n\n    public static Ball Instance {\n        get {\n            if(_instance == null) {\n                    _instance = new Ball();\n            }\n            return _instance;\n        }\n    }\n\n    \/\/\/ &lt;summary&gt;\n    \/\/\/ Move the ball on screen\n    \/\/\/ &lt;\/summary&gt;\n    \/\/\/ &lt;param name=\"speed\"&gt;The refresh\/draw speed of the screen&lt;\/param&gt;\n    public void Move(int speed) {\n\n        if (_timer &gt;= _milliseconds) {\n            \/\/ Set the cursor position to the current location of the ball\n            Console.SetCursorPosition(_a, _b);\n            \/\/ Clear the ball from the screen\n            Console.WriteLine(\" \");\n            _a += _dx;\n            _b += _dy;\n            \/\/ Set a new locatio for the ball\n            Console.SetCursorPosition(_a, _b);\n            \/\/ Draw the new ball location on screen\n            Console.Write(\"*\");\n            if (_a &gt; 77) _dx = -_dx;\n            if (_a &lt; 2) _dx = -_dx;\n            if (_b &gt; 22) _dy = -_dy;\n            if (_b &lt; 2) _dy = -_dy;\n        } else {\n            _timer = _timer + speed;\n        }\n    }\n}\n\nclass Paddle {\n\n    private int _x = 2, _y = 23, _da = 1;\n\n    public int x {\n        get {\n\n            if (_x &gt; (Console.BufferWidth - \"~~~~~~~~~~\".Length)) x = -_da;\n            if (_x &lt; 2) x = -_da;\n            if (_x &lt; 0) x = 2;\n            return _x; \n        }\n        set { _x = value; }\n    }\n\n    private static Paddle _instance;\n\n    private Paddle() { }\n\n    public static Paddle Instance {\n        get {\n            if (_instance == null) {\n                _instance = new Paddle();\n            }\n            return _instance;\n        }\n    }\n\n    \/\/\/ &lt;summary&gt;\n    \/\/\/ Move the Paddle on screen\n    \/\/\/ &lt;\/summary&gt;\n    \/\/\/ &lt;param name=\"direction\"&gt;Direction to move the paddle (Left = -1, Right = 1, Do Not Move = 0)&lt;\/param&gt;\n    public void Move(int direction) {\n        Console.SetCursorPosition(x, _y);\n        Console.Write(\"          \");\n        x = x - direction;\n        Console.SetCursorPosition(x, _y);\n        Console.Write(\"~~~~~~~~~~\");\n    }\n}\n\nclass Program {\n\n    private static int PaddleDirection = 0;\n\n    static void Main(string[] args) {\n\n        Thread ConsoleKeyListener = new Thread(new ThreadStart(ListerKeyBoardEvent));\n        ConsoleKeyListener.Name = \"KeyListener\";\n        ConsoleKeyListener.Start();\n        \/\/ConsoleKeyListener.IsBackground = true;\n\n        int speed = 50;\n\n        do {\n\n            Console.Clear();\n\n            Ball.Instance.Move(speed);\n            Paddle.Instance.Move(PaddleDirection);\n\n            PaddleDirection = 0; \/\/ You can remove this line to make the paddle loop left\/right on the screen after key press.\n\n            Thread.Sleep(speed);\n        } while (true);\n    }\n\n    private static void ListerKeyBoardEvent() {\n        do {\n            ConsoleKeyInfo k = Console.ReadKey(true);\n            if (k.Key == ConsoleKey.LeftArrow) PaddleDirection = 1;\n            else if (k.Key == ConsoleKey.RightArrow) PaddleDirection = -1;\n            else PaddleDirection = 0;\n            Console.ReadKey(false);\n        } while (true);           \n\n    }\n\n}\n}\n<\/code><\/pre>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">1<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved How can I run two Thread.sleep In C# [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] When I run the example code you provided, the application will run. That is to say, the ball (*) will move around the screen. Are you expecting the ball to move on the screen, and the paddle to be drawn and move when an arrow is pressed? If so, you should look at how &#8230; <a title=\"[Solved] How can I run two Thread.sleep In C# [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/\" aria-label=\"More on [Solved] How can I run two Thread.sleep In C# [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":[324,391],"class_list":["post-25367","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-loops"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] How can I run two Thread.sleep In C# [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-how-can-i-run-two-thread-sleep-in-c-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] How can I run two Thread.sleep In C# [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] When I run the example code you provided, the application will run. That is to say, the ball (*) will move around the screen. Are you expecting the ball to move on the screen, and the paddle to be drawn and move when an arrow is pressed? If so, you should look at how ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-09T13:07:27+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=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] How can I run two Thread.sleep In C# [closed]\",\"datePublished\":\"2022-12-09T13:07:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/\"},\"wordCount\":137,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"loops\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/\",\"name\":\"[Solved] How can I run two Thread.sleep In C# [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-12-09T13:07:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] How can I run two Thread.sleep In C# [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] How can I run two Thread.sleep In C# [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-how-can-i-run-two-thread-sleep-in-c-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] How can I run two Thread.sleep In C# [closed] - JassWeb","og_description":"[ad_1] When I run the example code you provided, the application will run. That is to say, the ball (*) will move around the screen. Are you expecting the ball to move on the screen, and the paddle to be drawn and move when an arrow is pressed? If so, you should look at how ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/","og_site_name":"JassWeb","article_published_time":"2022-12-09T13:07:27+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] How can I run two Thread.sleep In C# [closed]","datePublished":"2022-12-09T13:07:27+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/"},"wordCount":137,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","loops"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/","name":"[Solved] How can I run two Thread.sleep In C# [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-12-09T13:07:27+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-how-can-i-run-two-thread-sleep-in-c-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] How can I run two Thread.sleep In C# [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\/25367","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=25367"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/25367\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=25367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=25367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=25367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}