У меня есть библиотека классов, в которую я добавил пакет nuget UwpDesktop. Тот же Nuget отлично работает в Windows форме, но не работает в библиотеке классов - PullRequest
0 голосов
/ 18 апреля 2020

Я интегрировал эту функцию в мою библиотеку классов. Все работает нормально, но когда дело доходит до GetFileFromPathAsync(), оно просто не движется вперед и не выдает никаких исключений, хотя я добавил try catch.

Функция моей библиотеки классов работает таким образом, что ее путь вывода .dlls находится в отдельной папке. Я тестирую эту библиотеку классов с приложением GUI, которое выводит свои ресурсы в ту же папку, что и в библиотеке классов. Любая помощь будет оценена

private static async Task<string> WindowsMediaOCR(string ImagePath, LanguageEnum language)
{
    try
    {
        // ... Some code not related to below code
        var file = await StorageFile.GetFileFromPathAsync(Directory.GetCurrentDirectory() +"\\tempImage.bmp")
        var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
        var decoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(stream);
        var softwareBitmap = await decoder.GetSoftwareBitmapAsync();
        var ocrResult = await engine.RecognizeAsync(softwareBitmap);
        string readText = ocrResult.Text;
    }
    catch(Exception ex)
    {
        throw;
    }
}

1 Ответ

0 голосов
/ 20 апреля 2020

это просто не похоже на move forward and does not throw any exception, хотя я добавил try catch.

Проблема в том, что WindowsMediaOCR - это асинхронный c метод и его тип возвращаемого значения Task<string>, поэтому перед вызовом метода необходимо поместить ключевое слово await. и, пожалуйста, исправьте приведенный выше метод, который нуждается в типе возвращаемой строки. Для получения дополнительной информации, пожалуйста, обратитесь к этому документу .

var str = await CorLib.WindowsMediaOCR();
...