Кажется, что в приложениях Windows в C # существует шаблон, при котором вы назначаете «обработчик» для события, и это событие запускается как побочный эффект отдельного вызова метода. Для примера
ocrEngine = new OcrEngine();
ocrEngine.OcrResults += new OcrResultsEventHandler(ocrEngine_MethodThatProcessesTheResultsOfOcr);
Так, например, у вас есть механизм OCR (Оптическое распознавание символов), и вы хотите передать ему изображение и получить обратно некоторый текст. Однако в этом API я использую метод для передачи изображения, возвращающего int. т.е.
int result = ocEngine.ReadImage(image);
Это означает, что я выясняю, был ли процесс OCR успешным с int, то есть 0 = success.
Однако фактические результаты возвращаются в методе 'ocrEngine_MethodThatProcessesTheResultsOfOcr'.
Если я запускаю это из консольного приложения, я пытаюсь понять шаблон, который я должен использовать для возврата данных, поскольку фактически не существует очевидного синхронного способа возврата фактического результата.
На самом деле, очевидно, что по крайней мере два потока выполняются на вызов метода ocEngine.ReadImage (image);
У меня есть работа с Thread.Sleep и проверкой логического значения, но это кажется неправильным.
Любое руководство будет с благодарностью.