2012-10-06 147 views
-3

我一直在研究一段代码。我有一个问题:C#:线程和多线程的概念

什么是“线程”和“多线程”在C#中的意思? 线程的作用是什么?

+2

那是一个非常通用的和基本的问题该代码。在谷歌搜索这个,我相信你会得到很多关于此的信息。 – Luftwaffe

+0

这个问题已经以许多不错的方式回答了很多次,请尽量先试用Google。 –

+0

详细了解它:http://www.albahari.com/threading/ – Tudor

回答

1

线程是一个进程的上下文中执行的指令序列。当程序使用多个执行线程时允许每个线程同时共享CPU,这取决于分配给这些线程的优先级。

你可以参考学习线程

using System; 
using System.Threading; 

public class Alpha 
{ 

    // This method that will be called when the thread is started 
    public void Beta() 
    { 
     while (true) 
     { 
     Console.WriteLine("Alpha.Beta is running in its own thread."); 
     } 
    } 
}; 

public class Simple 
{ 
    public static int Main() 
    { 
     Console.WriteLine("Thread Start/Stop/Join Sample"); 

     Alpha oAlpha = new Alpha(); 

     // Create the thread object, passing in the Alpha.Beta method 
     // via a ThreadStart delegate. This does not start the thread. 
     Thread oThread = new Thread(new ThreadStart(oAlpha.Beta)); 

     // Start the thread 
     oThread.Start(); 

     // Spin for a while waiting for the started thread to become 
     // alive: 
     while (!oThread.IsAlive); 

     // Put the Main thread to sleep for 1 millisecond to allow oThread 
     // to do some work: 
     Thread.Sleep(1); 

     // Request that oThread be stopped 
     oThread.Abort(); 

     // Wait until oThread finishes. Join also has overloads 
     // that take a millisecond interval or a TimeSpan object. 
     oThread.Join(); 

     Console.WriteLine(); 
     Console.WriteLine("Alpha.Beta has finished"); 

     try 
     { 
     Console.WriteLine("Try to restart the Alpha.Beta thread"); 
     oThread.Start(); 
     } 
     catch (ThreadStateException) 
     { 
     Console.Write("ThreadStateException trying to restart Alpha.Beta. "); 
     Console.WriteLine("Expected since aborted threads cannot be restarted."); 
     } 
     return 0; 
    } 
}