Oppure

Loading
23/07/21 11:17
Valcars92
Salve a tutti e buongiorno... come da titolo vorrei sapere come faccio a passare un parametro a un thread in pratica mettiamo caso che io ho un codice in questo modo

Program.cs
using System;
using System.Threading;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            Class1 classe = new Class1();

            Thread t = new Thread(new ThreadStart(classe.provaClasse));
            t.Start("prova");

            Console.WriteLine("Hello World!");
        }
    }
}


Class1.cs
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApp2
{
    class Class1
    {
        public void provaClasse(string testo)
        {
            Console.WriteLine(testo);
        }
    }
}



mi da errore ma ho letto su internet che per passare dati al thread bisogna fare così.... qualcuno può spiegarmi un pò meglio come fare che non riesco a risolvere o meglio vorrei capire cosa sbaglio.... grazie in anticipo e scusatemi per il disturbo
Ultima modifica effettuata da Valcars92 23/07/21 11:27
23/07/21 15:49
Thejuster
Devi usare il ParametrizedThread.

esistono diversi modi per farlo, Membri anonimi o tramite task.

esempio di membri anonimi


string valore = "ciao";
int numero = 10;


Thread t = new Thread(new ParameterizedThreadStart(prova));    
    ActionThread.Start(new { valore, numero});




void prova(object param)
{
   dynamic p = param;

  Console.WriteLine(p.valore + " " + p.numero);

}



oppure tramite il task


new Thread(() => { /* metodo a cui chiamare e inviare parametri*/ }).Start();




Altro modo e come il tuo, ma semplicemente lo hai dichiarato come Thread normale e non come un thread parametrizzato.

ti bastava aggiungere new ParameterizedThreadStart



Class1 classe = new Class1();
 
            Thread t = new Thread(new ParameterizedThreadStart(classe.provaClasse));
            t.Start("prova");

mire.forumfree.it/ - Mire Engine
C# UI Designer
23/07/21 16:45
Valcars92
Grazie mille thejuster ora mi è tutto piu chiaro ^_^