- Multithreading with C# Cookbook(Second Edition)
- Eugene Agafonov
- 276字
- 2021-07-09 19:35:35
Pausing a thread
This recipe will show you how to make a thread wait for some time without wasting operating system resources.
Getting ready
To work through this recipe, you will need Visual Studio 2015. There are no other prerequisites. The source code for this recipe can be found at BookSamples\Chapter1\Recipe2
.
How to do it...
To understand how to make a thread wait without wasting operating system resources, perform the following steps:
- Start Visual Studio 2015. Create a new C# console application project.
- In the
Program.cs
file, add the followingusing
directives:using System; using System.Threading; using static System.Console; using static System.Threading.Thread;
- Add the following code snippet below the
Main
method:static void PrintNumbers() { WriteLine("Starting..."); for (int i = 1; i < 10; i++) { WriteLine(i); } } static void PrintNumbersWithDelay() { WriteLine("Starting..."); for (int i = 1; i < 10; i++) { Sleep(TimeSpan.FromSeconds(2)); WriteLine(i); } }
- Add the following code snippet inside the
Main
method:Thread t = new Thread(PrintNumbersWithDelay); t.Start(); PrintNumbers();
- Run the program.
How it works...
When the program is run, it creates a thread that will execute a code in the PrintNumbersWithDelay
method. Immediately after that, it runs the PrintNumbers
method. The key feature here is adding the Thread.Sleep
method call to a PrintNumbersWithDelay
method. It causes the thread executing this code to wait a specified amount of time (2 seconds in our case) before printing each number. While a thread sleeps, it uses as little CPU time as possible. As a result, we will see that the code in the PrintNumbers
method, which usually runs later, will be executed before the code in the PrintNumbersWithDelay
method in a separate thread.
- FuelPHP Application Development Blueprints
- Visual Studio 2012 Cookbook
- Three.js開發指南:基于WebGL和HTML5在網頁上渲染3D圖形和動畫(原書第3版)
- PowerCLI Cookbook
- Learning Elixir
- 新編Premiere Pro CC從入門到精通
- Learn Programming in Python with Cody Jackson
- Learning Unity 2D Game Development by Example
- Linux:Embedded Development
- Express Web Application Development
- 劍指大數據:企業級數據倉庫項目實戰(在線教育版)
- Visualforce Developer’s guide
- Hands-On Full Stack Development with Spring Boot 2.0 and React
- Nagios Core Administration Cookbook(Second Edition)
- Elasticsearch Essentials