如何调用一个在线程中接受多个参数的方法?

我正在构建一个C#Desktop应用程序。 如何调用在线程中接受多个参数的方法。 我有一个名为Send的方法(字符串arg1,字符串arg2,字符串arg3),我需要使用一个名为SendingThread的线程调用此方法。 任何人都可以帮忙吗? 任何帮助都感激不尽。

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

您可以定义一个类型,它封装您想要传递的参数,并通过引用此类型的实例来启动该线程。

您可以定义一个中间方法和辅助对象来执行此操作:

 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); 

这可能有所帮助。 您可以按如下方式定义Send方法,然后可以使用这些参数。

 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... }