I am building a C# Desktop application. How do I call a method that takes multiple parameters in a thread. I have a method called Send(string arg1, string arg2, string arg3) , I need to call this method using a thread called SendingThread. Can anyone help out with this? Any help will be much appreciated.
Thread thread = new Thread(() => Send(arg1, arg2, arg3));
thread.Start();
You could define a type, that encapsulates the parameters you want to pass and start the thread with a reference to an instance of this type.
You can define an intermediate method and helper object to do this:
public void MethodToCallInThread(string param1, string param2)
{
...
}
public void HelperMethod(object helper){
var h = (HelperObject) helper;
MethodToCallInThread(h.param1, h.param2);
}
And then you start the thread with the HelperMethod
, not with MethodToCallInThread
:
var h = new HelperObject { param1 = p1, param2 = p2 }
ThreadPool.QueueUserWorkItem(HelperMethod, h);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With