async void BackgoundListen(ThreadPoolTimer timer) { try { using (var response = await client.GetAsync("image/800")) { string data = await response.Content.ReadAsStringAsync(); var shelfImage = JsonConvert.DeserializeObject <ModelResponse>(data); byte[] img = Convert.FromBase64String(shelfImage.img); var recogRects = shelfImage.bboxes .Select(bb => new AbsoluteBoundingRect { Y = bb[0], X = bb[1], W = bb[3] - bb[1], H = bb[2] - bb[0] }).ToList(); // firing from non-UI thread GapDetectionEvent?.Invoke(img, recogRects); } } catch (Exception e) { Debug.WriteLine($"{e.Message}"); } }
private void FireGapDetectionAndCleanup(byte[] image, List <AbsoluteBoundingRect> recogRects) { // Cleanup! allRecognitions = default(ILookup <string, RecognitionMessage>); allUploads.Clear(); // and finally fire! GapDetectionEvent?.Invoke(image, recogRects); }