How to send a value to another thread in C#

2 Answers

0 votes
using System;
using System.Threading;
 
class Program
{
    static void Main()
    {
        Console.WriteLine("main 1");
        Thread thread = new Thread(new ParameterizedThreadStart(ThreadMethod));
        thread.Start("Hello from another thread");
        Console.WriteLine("main 2");
    }
 
    static void ThreadMethod(object obj) {
        string message = (string)obj;
         
        Console.WriteLine(message);
    }
}
 
    
    
/*
run:
 
main 1
main 2
Hello from another thread
    
*/

 



answered Apr 19 by avibootz
0 votes
using System;
using System.Threading;

class Program
{
    static void Main()
    {
        string message = "";
        using(var readyEvent = new ManualResetEvent(false))
        {
            var thread = new Thread(() =>
            {
                readyEvent.WaitOne();
                Console.WriteLine(message);
            });

            thread.Start();
        
            message = "Hello from another thread";
            readyEvent.Set();
        
            thread.Join();
        }
    }
}


    
/*
run:
 
Hello from another thread
    
*/

 



answered Apr 19 by avibootz
...