Я создаю приложение С# для рабочего стола. Как вызвать метод, который принимает несколько параметров в потоке. У меня есть метод 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...
}