長時間実行されるタスクの実行中に応答性を維持する UI の設計に頭を悩ませようとしています。
そのために、VS2012 で簡単なアプリを作成し、次のクラスを追加しました。
using System.Threading.Tasks;
namespace TaskTest
{
class Class1
{
public async Task<int> Async()
{
//simulate a long running process
for (long x = 0; x < long.MaxValue; x++) { }
return 1;
}
}
}
次に、メイン ページの LoadState() メソッドを次のように変更しました。
protected override async void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
await DoLongRunningProcess();
}
private async Task DoLongRunningProcess()
{
var id = 0;
id = await new Class1().Async();
await new MessageDialog(id + "").ShowAsync();
}
そのプロセスの実行中にページの応答性を維持したい。ただし、このコードを実行すると、ページの読み込みに時間がかかります。私は何を間違っていますか?
ティア