为了账号安全,请及时绑定邮箱和手机立即绑定

ThreadStart with parameters

ThreadStart with parameters

C#
跃然一笑 2019-10-23 16:30:35
如何使用C#中的参数启动线程?
查看完整描述

3 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

是的:


Thread t = new Thread (new ParameterizedThreadStart(myMethod));

t.Start (myParameterObject);


查看完整回答
反对 回复 2019-10-23
?
三国纷争

TA贡献1804条经验 获得超7个赞

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

  ...

}


查看完整回答
反对 回复 2019-10-23
?
忽然笑

TA贡献1806条经验 获得超5个赞

您可以使用lambda表达式


private void MyMethod(string param1,int param2)

{

  //do stuff

}

Thread myNewThread = new Thread(() => MyMethod("param1",5));

myNewThread.Start();

到目前为止,这是我能找到的最佳答案,它既快速又容易。


查看完整回答
反对 回复 2019-10-23
  • 3 回答
  • 0 关注
  • 356 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信