我在多线程环境中对hillstuk的回答有意想不到的结果。
这是我使用Newtonsoft的解决方案......享受
public void InitJob() {
MyClass data = new MyClass {Foo = “Foo fighters”};
/* a unique identifier for demonstration purposes.. Use your own concoction here. */
int uniqueIdentifier = new Random().Next(int.MinValue, int.MaxValue);
IJobDetail newJob = JobBuilder.Create()
.UsingJobData("JobData", JsonConvert.SerializeObject(data))
.WithIdentity($"job-{uniqueIdentifier}", "main")
.Build();
}
/* the execute method */
public class MyAwesomeJob : IJob
{
public void Execute(IJobExecutionContext context)
{
var jobData = JsonConvert.DeserializeObject(context.JobDetail.JobDataMap.GetString("JobData"));
}
}
/* for completeness */
public class MyClass {
string Foo { get; set; }
}