Windowsストアアプリのバックグラウンドタスクからファイルを読み取れないようです。ファイルの内容を読み取るコードは次のとおりです。
async private static Task<string> ReadAsync(string FileName)
{
var folder = ApplicationData.Current.LocalFolder;
var file = await folder.GetFileAsync(FileName);
Windows.Storage.Streams.IRandomAccessStreamWithContentType inputStream = null;
try
{
inputStream = await file.OpenReadAsync();
}
catch (Exception ex)
{
throw (ex);
}
string content = string.Empty;
using (Stream stream = inputStream.AsStreamForRead())
{
using (StreamReader reader = new StreamReader(stream))
{
try
{
// *** program exits on this line
content = await Task.Run(() => reader.ReadToEnd());
}
catch(Exception ex)
{
// no error is caught
content = ex.Message;
}
}
}
return content;
}
プログラムは、StreamReaderでReadToEnd()を呼び出す行で終了します。trycatchブロックでエラーはキャッチされません。出力ウィンドウで次のようになります。
プログラム'[8968]backgroundTaskHost.exe:Managed(v4.0.30319)'がコード1(0x1)で終了しました
バックグラウンドタスクでファイルにアクセスすることは可能ですか?もしそうなら、私はどこが間違っているのですか?