传递参数
优质
小牛编辑
138浏览
2023-12-01
您可以将其他数据作为常规方法参数传递到后台任务。我再次使用下面的例子(希望没有让你厌恶):
BackgroundJob.Enqueue(() => Console.WriteLine("Hello, {0}!", "world"));
在常规方法调用中,在执行后台作业期间, Console.WriteLine
方法将使用这些参数。为了参数传递进去,需要先序列化。
使用 了不起的 Newtonsoft.Json 软件包来序列参数成JSON字符串 (自 1.1.0
版本后)。所以你可以使用几乎任何类型作为参数; 包括数组,集合和自定义对象。详细内容,请参阅 相应的文档 。
参数不支持引用传递
你不能有引用传递的参数 – ref
和 out
关键字 不被支持.
由于参数是序列化的,谨慎考虑参数的值避免让你的存储膨胀。大多数情况下,更有效的方式是在应用程序的数据库中使用具体的标识符(id)并将其传递到后台任务。
请记住,后台作业可能在入队后的几天或几周内进行处理。如果您使用参数中可能会变化的数据,则可能会变得过时– 数据库记录可能会被删除,文章的文本可能会被更改等。 因此需要根据你的任务设计好参数。