public override Task <DefectsResponse> GetDefects(DefectsRequest request, ServerCallContext context) { var wafer = new Query().GetWafer(request.WaferId); var defsResponse = new DefectsResponse(); foreach (var def in wafer.Defects) { defsResponse.Defects.Add(CreateDefect(def)); } return(Task.FromResult(defsResponse)); }
public override Task <DefectsResponse> GetDefects(DefectsRequest request, ServerCallContext context) { var sw = new Stopwatch(); sw.Start(); var wafer = new Query().GetWafer(request.WaferId); var defsResponse = new DefectsResponse(); var defCount = wafer.Defects.Count; for (var idx = 0; idx < defCount; idx++) { defsResponse.Defects.Add(CreateDefect(wafer.Defects[idx])); } sw.Stop(); Console.WriteLine($"Data preparation time {sw.ElapsedMilliseconds} ms"); return(Task.FromResult(defsResponse)); }
private void ProduceDefects(int waferId, BlockingCollection <DefectsResponse> sink) { var blockSize = 100000; var wafer = new Query().GetWafer(waferId); var defsResponse = new DefectsResponse(); var defCount = wafer.Defects.Count; for (var idx = 0; idx < defCount; idx++) { if (idx % blockSize == 0) { sink.Add(defsResponse); Console.WriteLine($"added {defsResponse.Defects.Count} to sink"); defsResponse = new DefectsResponse(); } defsResponse.Defects.Add(CreateDefect(wafer.Defects[idx])); } sink.Add(defsResponse); Console.WriteLine($"added {defsResponse.Defects.Count} to sink"); sink.CompleteAdding(); }