Как вызвать метод, который принимает несколько параметров в потоке?

Я создаю приложение С# для рабочего стола. Как вызвать метод, который принимает несколько параметров в потоке. У меня есть метод Send (string arg1, string arg2, string arg3), мне нужно вызвать этот метод, используя поток, называемый SendingThread. Может ли кто-нибудь помочь с этим? Любая помощь будет высоко оценена.

Ответ 1

Thread thread = new Thread(() => Send(arg1, arg2, arg3));
thread.Start();

Ответ 2

Вы можете определить тип, который инкапсулирует параметры, которые вы хотите передать, и запустить поток с ссылкой на экземпляр этого типа.

Ответ 3

Для этого вы можете определить промежуточный метод и вспомогательный объект:

public void MethodToCallInThread(string param1, string param2)
{
    ...
}
public void HelperMethod(object helper){
    var h = (HelperObject) helper;
    MethodToCallInThread(h.param1, h.param2);
}

И затем вы начинаете поток с HelperMethod, а не с помощью MethodToCallInThread:

var h = new HelperObject { param1 = p1, param2 = p2 }
ThreadPool.QueueUserWorkItem(HelperMethod, h);

Ответ 4

это может помочь. Вы можете определить свой метод отправки следующим образом, а затем можете использовать параметры.

string[] parameters = new string[3];
parameters[0] = arg1;
parameters[1] = arg2;
parameters[1] = arg3;

System.Threading.Thread SendingThread = new System.Threading.Thread(Send);
SendingThread.Start(parameters);


public void Send(object parameters)
{
   Array arrayParameters = new object[3];
   arrayParameters = (Array)parameters;
   string str1 = (string)arrayParameters.GetValue(0);
   string str2 = (string)arrayParameters.GetValue(1);
   string str3 = (string)arrayParameters.GetValue(2);

   ///Following code here...
}