任何人都可以给一个示例或描述如何产生线程的任何链接,其中每个线程将同时执行不同的工作。如何在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