我正在构建一个C#Desktop应用程序。 如何调用在线程中接受多个参数的方法。 我有一个名为Send的方法(字符串arg1,字符串arg2,字符串arg3),我需要使用名为SendingThread的线程调用此方法。任何人都可以帮忙吗? 任何帮助将不胜感激。
答案 0 :(得分:23)
Thread thread = new Thread(() => Send(arg1, arg2, arg3));
thread.Start();
答案 1 :(得分:2)
您可以定义一个类型,它封装您想要传递的参数,并通过引用此类型的实例来启动该线程。
答案 2 :(得分:1)
您可以定义一个中间方法和辅助对象来执行此操作:
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);
答案 3 :(得分:-1)
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...
}