我的应用计算StyledStringElement的图像,此过程需要花费大量时间。这一切都在当地完成。
我该怎么做这样的伪代码:
myElement.Image = PlaceHolderImage;
myElement.GoGetTheImageFromSomeLongRunningTask = GetImageFromSomeFuntionThatWillTakeTime();
答案 0 :(得分:2)
你可以使用这样的东西(未经测试):
myElement.Image = PlaceHolderImage;
ThreadPool.QueueUserWorkItem ((v) =>
{
var image = GetImageFromSomeFunctionThatWillTakeTime ();
BeginInvokeOnMainThread (() =>
{
myElement.Image = image;
myRoot.ReloadData ();
});
});
请注意,这假设GetImageFromSomeFunctionThatWillTakeTime实际上可以在辅助线程上执行。您可以使用当前的MonoTouch测试版(5.3.2)轻松测试这一点,因为如果您执行了辅助线程上不允许的操作,您将收到异常。