Мое приложение Win RT, которое работало с VS2012RC в бета-версии Windows 8, теперь имеет с окончательными версиями Visual Studio и Windows 8 Pro проблему, заключающуюся в том, что создание/открытие файла в OnSuspending работает, только если я установил точку останова отладчика -к способу создания файла.
private void OnSuspending(object sender, SuspendingEventArgs e){
var deferral = e.SuspendingOperation.GetDeferral();
if (null != m_document) Save();
deferral.Complete();
}
async void Save(){
var folder = KnownFolders.DocumentsLibrary;
var file = await folder.CreateFileAsync(GetFileName(),Windows.Storage.CreationCollisionOption.ReplaceExisting);
var xDoc = GetXDocument();
using (var stream = await file.OpenStreamForWriteAsync()){
xDoc.Save(stream);
}
}
Если я установлю точку останова на StorageFile file = await
folder.CreateFileAsync(...
, отладчик войдет в продолжай, все работает.
Однако, если я не установлю точку останова, файл будет создан, но содержимое xml не будет сохранено (файл остается пустым ).
Если я установлю точку останова ниже строки StorageFile file = await folder.CreateFileAsync(...
, отладчик никогда не войдет!
У кого-нибудь есть идея? Я также протестировал версию, использующую folder.OpenStreamForWriteAsync
, с тем же эффектом.