Threads avec parametres en .net 1.x et .net 2.0

Contenu du snippet

Suite à une question sur le forum, voici un petit exemple de comment lancer des threads avec des parametres

Source / Exemple :


using System;
using System.Threading;

// En .Net 1.x
namespace Threads
{
	public class MonThread
	{
		int i = 0;

		public MonThread(int i)
		{
			this.i = i;
		}

		public  void ThreadFonction()
		{
			for(; i<=30; i++)
			{
				Console.WriteLine(i.ToString());
				Thread.Sleep(300);
			}
		}

	}

	public class Exemple
	{
		public static void Main()
		{
			MonThread mt1 = new MonThread(5);
			Thread t1 = new Thread(new ThreadStart(mt1.ThreadFonction));
			t1.Start();
			MonThread mt2 = new MonThread(10);
			Thread t2 = new Thread(new ThreadStart(mt2.ThreadFonction));
			t2.Start();
		}
	}
}

// En .Net 2
// Il suffit d'utiliser ParameterizedThreadStart

using System;
using System.Threading;

public class Exemple
{
	public static void Main()
	{
		Exemple e = new Exemple();
	}
	private Thread t;
	public Exemple()
	{
		t = new Thread(new ParameterizedThreadStart(IncrementToTen));
		t.Start(1);// Le parametre est passé dans la méthode Start()
	}

	public void IncrementToTen(object temp)
	{
		int i = (int)temp;
		while(i < 10) i++;
		Console.WriteLine(i.ToString());
	}
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.