C# 如何在C中生成线程#
任何人都可以提供一个样本或任何链接,描述如何产生线程,其中每个线程将在同一时间做不同的工作C# 如何在C中生成线程#,c#,multithreading,C#,Multithreading,任何人都可以提供一个样本或任何链接,描述如何产生线程,其中每个线程将在同一时间做不同的工作 假设我有作业1和作业2。我想同时运行这两个作业。我需要这些工作并行执行。我该怎么做呢?MSDN的线程教程 基本上,它很简单: ThreadStart work = NameOfMethodToCall; Thread thread = new Thread(work); thread.Start(); ... private void NameOfMethodToCall() { // This
假设我有作业1和作业2。我想同时运行这两个作业。我需要这些工作并行执行。我该怎么做呢?MSDN的线程教程
基本上,它很简单:
ThreadStart work = NameOfMethodToCall;
Thread thread = new Thread(work);
thread.Start();
...
private void NameOfMethodToCall()
{
// This will be executed on another thread
}
但是,还有其他选项,例如线程池或(在.NET4中)使用并行扩展
我有一个很老的线程,C#中的线程是由Thread类建模的。当一个进程启动时(你运行一个程序),你会得到一个线程(也称为主线程)来运行你的应用程序代码。要显式启动另一个线程(应用程序主线程除外),必须创建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!");
}
}
您可以在本教程中了解更多信息,在这里您将学习如何利用C#和.NET Framework提供的线程类和任务并行库来创建响应迅速、并行且满足用户期望的健壮应用程序。假设我有job1和job2。我想同时运行这两个作业。您的示例将按顺序执行。但我需要这些工作同时执行。我该怎么做?@deepak:不会的-你启动两个线程,它们将并行运行。这就是使用线程的全部意义。@JonSkeet如果我希望将参数传递给我要调用的方法,该怎么办?@AbijeetPatro:那么您可以使用
parameteredThreadStart
或使用匿名函数来捕获参数。如果这还不够详细,请问一个单独的问题(在搜索答案之后-我怀疑这个问题以前被问过)。@JonSkeet是的,已经问过了,谢谢。要了解如何通过线程调用具有参数的方法,请检查此处-您的链接(现在)已断开(下载已“失效”),但我能够找到