我的应用程序计算 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 beta (5.3.2) 轻松测试这一点,因为如果您在辅助线程上执行不允许的操作,您将获得异常。