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