问题
Write the code which asynchronus load BitmapImage.
public async void AsyncLoadPhotoNotesFromIsolatedStorage()
{
IsolatedStorageSettings appStorageSettings = IsolatedStorageSettings.ApplicationSettings;
if (appStorageSettings.Count > 0)
{
var loadedPhotoNotes = new ObservableCollection<PhotoNote>();
foreach (Object obj in appStorageSettings.Values)
{
var tempPhotoNote = (PhotoNote) obj;
BitmapImage bitmapImage = null;
Stream imageStream = await LoadImageAsync(tempPhotoNote.Id);
if (imageStream != null)
{
bitmapImage = new BitmapImage();
bitmapImage.SetSource(imageStream);
}
tempPhotoNote.Picture = bitmapImage;
loadedPhotoNotes.Insert(0, tempPhotoNote);
}
//loadedPhotoNotes.Reverse();
PhotoNotes = loadedPhotoNotes;
}
}
Method LoadImageAsync:
private Task<Stream> LoadImageAsync(string fileName)
{
return Task.Factory.StartNew(() =>
{
if (fileName == null)
{
throw new ArgumentException("one of parameters is null");
}
Stream fileStream = null;
using (var appStorageFile = IsolatedStorageFile.GetUserStoreForApplication())
{
if (appStorageFile.FileExists(fileName))
{
fileStream = appStorageFile.OpenFile(fileName, FileMode.Open, FileAccess.Read);
}
}
return fileStream;
});
}
The compiler issues the following error:
- Invalid token 'void' inside the class or interface method
- In line
Stream imageStream = await LoadImageAsync(tempPhotoNote.Id);
required ";" afterawait LoadImageAsync
来源:https://stackoverflow.com/questions/16748383/using-async-await-on-windows-phone-7