官术网_书友最值得收藏!

Creating a thread in C#

Throughout the following recipes, we will use Visual Studio 2012 as the main tool to write multithreaded programs in C#. This recipe will show you how to create a new C# program and use threads in it.

Note

There are free Visual Studio 2012 Express editions, which can be downloaded from the Microsoft website. We will need Visual Studio 2012 Express for Windows Desktop for most of the examples and Visual Studio 2012 Express for Windows 8 for Windows 8-specific recipes.

Getting ready

To work through this recipe, you will need Visual Studio 2012. There are no other prerequisites. The source code for this recipe can be found at BookSamples\Chapter1\Recipe1.

Tip

Downloading the example code

You can download the example code files for all Packt books you have purchased through your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

How to do it...

To understand how to create a new C# program and use threads in it, perform the following steps:

  1. Start Visual Studio 2012. Create a new C# Console Application project.
  2. Make sure that the project uses .NET Framework 4.0 or higher version.
    How to do it...
  3. In the Program.cs file add the following using directives:
    using System;
    using System.Threading;
  4. Add the following code snippet below the Main method:
    static void PrintNumbers()
    {
      Console.WriteLine("Starting...");
      for (int i = 1; i < 10; i++)
      {
        Console.WriteLine(i);
      }
    }
  5. Add the following code snippet inside the Main method:
    Thread t = new Thread(PrintNumbers);
    t.Start();
    PrintNumbers();
  6. Run the program. The output will be something like:
    How to do it...

How it works...

In steps 1 and 2 we created a simple console application in C# using .Net Framework version 4.0. Then in step 3 we included the namespace System.Threading, which contains all the types needed for the program.

Note

An instance of a program is being executed can be referred to as a process. A process consists of one or more threads. This means that when we run a program, we always have one main thread that executes the program code.

In step 4 we defined the method PrintNumbers, which will be used in both the main and newly created threads. Then in step 5, we created a thread that runs PrintNumbers. When we construct a thread, an instance of the ThreadStart or ParameterizedThreadStart delegate is passed to the constructor. The C# compiler is creating this object behind the scenes when we just type the name of the method we want to run in a different thread. Then we start a thread and run PrintNumbers in the usual manner on the main thread.

As a result, there will be two ranges of numbers from 1 to 10 randomly crossing each other. This illustrates that the PrintNumbers method runs simultaneously on the main thread and on the other thread.

主站蜘蛛池模板: 孟州市| 龙川县| 萨迦县| 清镇市| 桑植县| 肥乡县| 韶山市| 镶黄旗| 隆昌县| 永寿县| 南丹县| 虹口区| 岳阳县| 灵台县| 长垣县| 乌鲁木齐市| 罗城| 芜湖县| 遂平县| 射洪县| 兰考县| 广宁县| 岳池县| 吴旗县| 镶黄旗| 顺义区| 伊金霍洛旗| 长海县| 海晏县| 理塘县| 吉安县| 江都市| 叶城县| 易门县| 兰考县| 阿巴嘎旗| 土默特左旗| 儋州市| 永安市| 方城县| 庆安县|