В WinRT, как мне загрузить изображение, а затем ждать только столько времени, сколько необходимо для его загрузки, прежде чем писать в него?

Я использую WriteableBitmapEx в проекте WinRT. Я загружаю изображение в WriteableBitmap из библиотеки изображений пользователей. Однако затем я не могу немедленно записать это изображение, если оно будет выполнено, оно будет перезаписано самим изображением (кажется, что оно асинхронно загружает изображение, а затем оно перезаписывает мой рисунок поверх него). Я не знаю, как это предотвратить (я пытался использовать Await на SetSource, но это не метод Async).

Я использовал «Await Task.Delay (1000)» и это работает, но кажется хакерским, потому что 1000 мс может или не может быть достаточно времени .. Я хотел бы дождаться загрузки растрового изображения, прежде чем продолжить.

Может ли кто-нибудь показаться не совсем верным, что я делаю неправильно, или подсказать, как я могу убедиться, что WriteableBitmap загружен из библиотеки изображений перед выполнением какой-либо обработки? Вот пример кода, который я создал:

<code>Dim file = Await picker.PickSingleFileAsync

If file Is Nothing Then
    Exit Sub
End If

Dim wbm As New WriteableBitmap(1, 1)
wbm.SetSource(Await file.OpenAsync(Windows.Storage.FileAccessMode.Read))

' If I don't have this, the DrawLine will not show up, if I do, it will.
Await Task.Delay(1000)

wbm.DrawLine(1, 1, 255, 255, Colors.Green)
wbm.Invalidate()

ImageMain.Source = wbm
</code>

Ответы на вопрос(3)

Ваш ответ на вопрос