任何人都可以給一個示例或描述如何產生線程的任何鏈接,其中每個線程將同時執行不同的工作。如何在C#中產生線程
假設我有job1和job2。我想同時運行這兩項工作。我需要這些工作並行執行。我怎樣才能做到這一點?
任何人都可以給一個示例或描述如何產生線程的任何鏈接,其中每個線程將同時執行不同的工作。如何在C#中產生線程
假設我有job1和job2。我想同時運行這兩項工作。我需要這些工作並行執行。我怎樣才能做到這一點?
好,從根本上是簡單的:
ThreadStart work = NameOfMethodToCall;
Thread thread = new Thread(work);
thread.Start();
...
private void NameOfMethodToCall()
{
// This will be executed on another thread
}
然而,還有其他選項,如線程池或使用並行擴展(在.NET 4)。
我有一個threading tutorial這是比較舊的和Joe Alabahari has one too。
C#中的線程由Thread Class建模。當一個進程開始時(你運行一個程序),你得到一個單線程(也稱爲主線程)來運行你的應用程序代碼。要明確啓動另一個線程(不是你的應用程序主線程等),你必須創建Thread類的實例,並調用它的start方法使用C#來運行的線程,讓我們看一個例子
using System;
using System.Diagnostics;
using System.Threading;
public class Example
{
public static void Main()
{
//initialize a thread class object
//And pass your custom method name to the constructor parameter
Thread thread = new Thread(SomeMethod);
//start running your thread
thread.Start();
Console.WriteLine("Press Enter to terminate!");
Console.ReadLine();
}
private static void SomeMethod()
{
//your code here that you want to run parallel
//most of the cases it will be a CPU bound operation
Console.WriteLine("Hello World!");
}
}
您可以瞭解更多這tutorial Multithreading in C#,在這裏,您將學習如何利用C#和.NET Framework提供的Thread類和Task Parallel Library來創建響應性,並行性和滿足用戶期望的健壯應用程序。
假設我有job1和job2。我想同時運行這兩項工作。你的例子將按順序執行。但我需要這些工作並行執行。我怎樣才能做到這一點 ? – deepak 2010-04-18 06:50:20
@deepak:不,它不會 - 你啓動兩個線程,它們將並行運行。這就是使用線程的關鍵。 – 2010-04-18 06:53:31
@JonSkeet如果我想將參數傳遞給我想要調用的方法,該怎麼辦? – 2013-08-01 05:23:04