ThreadStart with parameters

如何使用C#中的参数启动线程?



跃然一笑
浏览 360回答 3
3回答

一只萌萌小番薯

是的:Thread t = new Thread (new ParameterizedThreadStart(myMethod));t.Start (myParameterObject);

三国纷争

Thread构造函数的2个重载之一使ParameterizedThreadStart委托成为可能,该委托使您可以将单个参数传递给start方法。不幸的是,尽管它只允许使用一个参数,但这样做并不安全,因为它将其作为对象传递。我发现使用lambda表达式捕获相关参数并以强类型方式传递它们要容易得多。尝试以下public Thread StartTheThread(SomeType param1, SomeOtherType param2) {  var t = new Thread(() => RealStart(param1, param2));  t.Start();  return t;}private static void RealStart(SomeType param1, SomeOtherType param2) {  ...}

忽然笑

您可以使用lambda表达式private void MyMethod(string param1,int param2){  //do stuff}Thread myNewThread = new Thread(() => MyMethod("param1",5));myNewThread.Start();到目前为止,这是我能找到的最佳答案,它既快速又容易。
打开App,查看更多内容
随时随地看视频慕课网APP