Multithreading Xamarin.Forms';主线程是单线程吗?

Multithreading Xamarin.Forms';主线程是单线程吗?,multithreading,xamarin,xamarin.forms,Multithreading,Xamarin,Xamarin.forms,我正在使用XF pcl制作一个应用程序 我很好奇它的主线程在两个iOS/Android平台上都是一个线程。因为我很少在XF/Android上遇到这个错误 当我尝试访问myarray[I]时,我很少在XF/Android上遇到这种情况 [NullReferenceException:对象引用未设置为 反对。] 我相信Clean()和Update()都是从主线程调用的,所以它不会发生,还是我错了 代码 IList<MyData> myarray = new List<MyData&

我正在使用XF pcl制作一个应用程序

我很好奇它的主线程在两个
iOS/Android
平台上都是一个线程。因为我很少在
XF/Android
上遇到这个错误

当我尝试访问myarray[I]时,我很少在
XF/Android
上遇到这种情况

[NullReferenceException:对象引用未设置为 反对。]

我相信Clean()和Update()都是从主线程调用的,所以它不会发生,还是我错了

代码

IList<MyData> myarray = new List<MyData>();

void Clean() //when ContentPage is popped.
{
    ....
    StopMyTimer();
    myarray.Clear();
    myarray = null;
}

void Update() //every 50ms by Device.StartTimer
{
    ....
    if(myarray != null)
    {
        for(int i = myarray.Count - 1 ; i >= 0 ; i--)
        {
            MyData = myarray[i];
            if(/*needdelete*/)
                myarray.remove(MyData);
        }
    }
    ....
}
IList myarray=new List();
void Clean()//当弹出ContentPage时。
{
....
StopMyTimer();
myarray.Clear();
myarray=null;
}
void Update()//每50毫秒由Device.StartTimer更新一次
{
....
if(myarray!=null)
{
对于(int i=myarray.Count-1;i>=0;i--)
{
MyData=myarray[i];
如果(/*需要删除*/)
myarray.remove(MyData);
}
}
....
}

尝试InvokeOnMainThread(()=>{//操纵UI控件});-迈克·达维什刚才edit@MikeDarwish嗨,正如我写的,我确信它是从主线程调用的。那就不需要了,不是吗?如果你确定了,你就不需要了it@MikeDarwish对这就是为什么我写了一个问题…你在IOS上也面临同样的问题吗?!