void ResultEventHandler(object sender, ResultEventArgs args) { var result = args.Result; int index = 0; lock (ImageResults) { foreach (var image in ImageResults) { if (image.Path == result.Path) { index = ImageResults.IndexOf(image); break; } } Dispatcher.UIThread.InvokeAsync(() => { lock (ImageResults) { ImageResults[index] = new MNISTModelResultDb(result); ImageClasses[result.Class].Add(new MNISTModelResultDb(result)); ClassesInfo[result.Class] = ClassInfoProcess(result.Class, ImageClasses[result.Class].Count); processed++; ProdProgressInfo(); } }); Task.Run(() => { lock (dbContext) { Bitmap resImage = new Bitmap(result.Path); Blob resBlob = new Blob { Bytes = ImageToByteArray(resImage) }; dbContext.ClassifiedImages.Add(new ClassifiedImage { Path = result.Path, Class = result.Class, Confidence = result.Confidence, RetrieveCount = 0, Image = resBlob }); dbContext.Blobs.Add(resBlob); dbContext.SaveChanges(); } }); } }
void ResultEventHandler(object sender, ResultEventArgs args) { var result = args.Result; int index = 0; lock (ImageResults) { foreach (var image in ImageResults) { if (image.Path == result.Path) { index = ImageResults.IndexOf(image); break; } } Dispatcher.UIThread.InvokeAsync(() => { lock (ImageResults) { ImageResults[index] = new MNISTModelResult(result); ImageClasses[result.Class].Add(new MNISTModelResult(result)); ClassesInfo[result.Class] = ClassInfoProcess(result.Class, ImageClasses[result.Class].Count); } }); } }