多线程生成没有按预期工作
作者: ahmedwael216创建于 2026年3月6日更新于 2026年3月6日
[Benchmark(Description = "Normal Generation")] [ArgumentsSource(nameof(BatchSizes))] public void Bench1(int batchSize) { var addressFaker = AddressFaker.Create(); var buyerFaker = CompanyFaker.Create() .RuleFor(c => c.Addresses, (_, c) => addressFaker.RuleFor(a => a.CompanyId, c.EdcID).Generate(2)); var orderEventFaker = EventFaker.CreateOrderFaker(); var orderItemEventFaker = EventFaker.CreateOrderItemFaker(); var customFieldOrderFaker = CustomFieldFaker.CreateOrderFaker(); var customFieldOrderItemFaker = CustomFieldFaker.CreateOrderItemFaker();
var orderItemBaseFaker = OrderItemFaker.Create();
var orderFaker = OrderFaker.Create()
.RuleFor(o => o.OwnerId, _ => OwnerId)
.RuleFor(o => o.Buyer, _ => buyerFaker.Generate())
.RuleFor(o => o.BuyerID, (_, o) => o.Buyer!.ID)
.FinishWith((_, o) =>
{
o.Events = orderEventFaker.Generate(10);
o.Events.ForEach(cf => cf.OrderId = o.ID);
o.PackLines.ForEach(cf => cf.OrderId = o.ID);
o.CustomFields = customFieldOrderFaker.Generate(10);
o.CustomFields.ForEach(cf => cf.OrderId = o.ID);
var items = orderItemBaseFaker.Generate(2);
foreach (var item in items)
{
item.OrderId = o.ID;
item.OwnerId = OwnerId;
item.Events = orderItemEventFaker.Generate(10);
item.Events.ForEach(cf => cf.OrderItemId = item.ID);
item.CustomFields = customFieldOrderItemFaker.Generate(10);
…
内容来源: bchavez/Bogus