10秒ごとに言う画像をキャプチャしたい。このために、次のコードを実行する Timer クラスを使用します。
async private void captureImage()
{
capturePreview.Source = captureManager;
await captureManager.StartPreviewAsync();
ImageEncodingProperties imgFormat = ImageEncodingProperties.CreateJpeg();
// create storage file in local app storage
StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync(
"TestPhoto.jpg",
CreationCollisionOption.GenerateUniqueName);
// take photo
await captureManager.CapturePhotoToStorageFileAsync(imgFormat, file);
// Get photo as a BitmapImage
BitmapImage bmpImage = new BitmapImage(new Uri(file.Path));
// imagePreivew is a <Image> object defined in XAML
imagePreivew.Source = bmpImage;
await captureManager.StopPreviewAsync();
//send file to server
sendHttpReq();
await file.DeleteAsync(StorageDeleteOption.PermanentDelete);
}
現在、ボタンクリックで上記の関数を呼び出していますが、
画像をWebサーバーに送信するため、画像が転送されたらファイルを削除したい。ただし、ボタンのクリック時に imagePreivew が更新されることはありませんが、ファイルを削除しないと、ボタンを押すたびに imagePreivew が変更されます。また、 CreationCollisionOption.ReplaceExisting を試しましたが、それでも同じ問題に直面しました。タイマーがタスクを実行するたびに新しいファイルを作成すると、多くのメモリが浪費されます。ファイルを削除するにはどうすればよいですか???