私のアプリはStyledStringElementの画像を計算しますが、このプロセスにはかなりの時間がかかります。それはすべてローカルで行われます。
この擬似コードのようなことをどのように行うことができますか?
myElement.Image = PlaceHolderImage;
myElement.GoGetTheImageFromSomeLongRunningTask = GetImageFromSomeFuntionThatWillTakeTime();
私のアプリはStyledStringElementの画像を計算しますが、このプロセスにはかなりの時間がかかります。それはすべてローカルで行われます。
この擬似コードのようなことをどのように行うことができますか?
myElement.Image = PlaceHolderImage;
myElement.GoGetTheImageFromSomeLongRunningTask = GetImageFromSomeFuntionThatWillTakeTime();
次のようなものを使用できます(テストされていません):
myElement.Image = PlaceHolderImage;
ThreadPool.QueueUserWorkItem ((v) =>
{
var image = GetImageFromSomeFunctionThatWillTakeTime ();
BeginInvokeOnMainThread (() =>
{
myElement.Image = image;
myRoot.ReloadData ();
});
});
これは、GetImageFromSomeFunctionThatWillTakeTimeが実際にセカンダリスレッドで実行できることを前提としていることに注意してください。セカンダリスレッドで許可されていないことを行うと例外が発生するため、現在のMonoTouchベータ(5.3.2)を使用してこれを簡単にテストできます。