- 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.
- Intel Galileo Essentials
- Python數據分析入門與實戰
- ASP.NET Core 5.0開發入門與實戰
- The React Workshop
- Scratch 3.0少兒編程與邏輯思維訓練
- Mastering RStudio:Develop,Communicate,and Collaborate with R
- Scala謎題
- TradeStation交易應用實踐:量化方法構建贏家策略(原書第2版)
- 碼上行動:用ChatGPT學會Python編程
- 利用Python進行數據分析(原書第3版)
- 蘋果的產品設計之道:創建優秀產品、服務和用戶體驗的七個原則
- Beginning C++ Game Programming
- SQL Server 2016 從入門到實戰(視頻教學版)
- 人工智能算法(卷1):基礎算法
- Getting Started with Windows Server Security