Create a new stream using the method with parameter

I am trying to create a new thread and pass a method with a parameter, but there are no errors.

Thread t = new Thread(myMethod);
t.Start(myGrid);

public void myMethod(UltraGrid myGrid)
{
}

--------- Errors ------------

Error: CS1502 - line 92 (164) - The best overloaded method match for ' System.Threading.Thread.Thread(System.Threading.ThreadStart)' has some invalid arguments

Error: CS1503 - line 92 (164) - Argument '1': cannot convert from 'method group' to ' System.Threading.ThreadStart'

+5
source share
3 answers

- - , , . ParameterizedThreadStart .

Thread t = new Thread(()=>myMethod(myGrid));
t.Start();

public void myMethod(UltraGrid myGrid)
{
}

public void myMethod(UltraGrid myGrid, string s)
{
}

Thread t = new Thread(()=>myMethod(myGrid, "abc"));
t.Start();

http://www.albahari.com/threading/#_Passing_Data_to_a_Thread

!

+18

:

var t = new Thread(new ParameterizedThreadStart(myMethod));
t.Start(myGrid);

:

public void myMethod(object myGrid)
{
    var grid = (UltraGrid)myGrid;
}

ParameterizedThreadStart.

+10
    public void myMethod(object myGrid)
    {
        var typedParam = (UltraGrid)myGrid;
        //...
    }


    Thread t = new Thread(new ParameterizedThreadStart(myMethod));
    t.Start(myGrid);
0
source

All Articles