启动具有多个参数的任务的标准做法是什么?

本文关键字:标准 是什么 任务 启动 参数 | 更新日期: 2023-09-27 18:01:42

现在我有

class MyParamClass
{
   all the parameters I need to pass to the task
}
MyParamClass myParamObj = new MyParamClass();
myParamObj.FirstParam = xyz;
myParamObj.SecondParam = abc;
mytask = new Task<bool>(myMethod, myParamObj,_cancelToken);
mytask.Start()
bool myMethod(object passedMyParamObj)
{
   MyParamClass myParamObj = passedMyParamObj as MyParamClass;
  //phew! finally access to passed parameters
}

无论如何我可以做到这一点,而不需要创建类MyParamClass ?如何在没有这种杂耍的情况下向任务传递多个参数?这是标准做法吗?谢谢你

启动具有多个参数的任务的标准做法是什么?

您可以使用lambda或内联委托来完成此操作:

myTask = new Task<bool>(() => MyMethod(xyz, abc), _cancelToken);

使用包装器类进行处理是完成此操作的标准方法。你唯一能做的就是用Tuple来避免写MyParamClass

mytask = new Task(myMethod, Tuple.Create(xyz, abc), _cancelToken);
mytask.Start();
bool myMethod(object passedTuple)
{
     var myParamObj = passTuple as Tuple<int, string>;
}