首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin直播间UIImageView

Xamarin直播间UIImageView
EN

Stack Overflow用户
提问于 2017-04-05 11:19:25
回答 1查看 26关注 0票数 0

我可以通过单击按钮将图片加载到UImageView,但不能从计时器加载。为什么会这样呢?我怎么才能修复它呢?

下面是我的代码:

代码语言:javascript
复制
void _timer_Elapsed(object sender, ElapsedEventArgs e)
{
    Patter_Function();
    switch_Function();
}



void switch_Function()
{

    image1 = new UIImage();
    image1 = UIImage.FromBundle("heart");

    image2 = new UIImage();
    image2 = UIImage.FromFile( @"White_Sharingan.png");

    image3 = new UIImage();
    image3 = UIImage.FromFile("snow.png");

    image4 = new UIImage();
    //image4.//FromFile("Images/waterfront.jpg");



        switch (Patter_1[switch_Counter].Move0) { 
        case 0 :
            Box_1.Image =  image1;
            break;
                case 1 :
                Box_1.Image = image1;
                break;
                case 2 :
                Box_2.Image = image1;
                break;
                case 3:
                Box_3.Image = image1;
                break;
                case 4:
                Box_4.Image = image1;
                break;
                case 5:
                Box_5.Image = image1;
                break;
                case 6:
                Box_6.Image = image1;
                break;
                case 7:
                Box_7.Image = image1;
                break;
                case 8:
                Box12.Image = image1;
                break;
                case 9:
                Box_9.Image = image1;
                break;
                case 10:
                Box_10.Image = image1;
                break;
                case 11:
                Box_11.Image = image1;
                break;
                case 12:
                Box8.Image = image1;
                break;
                case 13:
                Box_13.Image = image1;
                break;
                case 14:
                Box_14.Image = image1;
                break;
                case 15:
                Box_15.Image = image1;
                break;
                case 16:
                Box_16.Image = image1;
                break;
                case 17:
                Box_17.Image = image1;
                break;
                case 18:
                Box_18.Image = image1;
                break;
                case 19:
                Box_19.Image = image1;
                break;
                case 20:
                Box_20.Image = image1;
                break;}


        switch (Patter_1[switch_Counter].Move1)
        {
            case 0:
                Box_1.Image = image2;
                break;
            case 1:
                Box_2.Image = image2;
                break;
            case 2:
                Box_2.Image = image2;
                break;
            case 3:
                Box_3.Image = image2;
                break;
            case 4:
                Box_4.Image = image2;
                break;
            case 5:
                Box_5.Image = image2;
                break;
            case 6:
                Box_6.Image = image2;
                break;
            case 7:
                Box_7.Image = image2;
                break;
            case 8:
                Box12.Image = image2;
                break;
            case 9:
                Box_9.Image = image2;
                break;
            case 10:
                Box_10.Image = image2;
                break;
            case 11:
                Box_11.Image = image2;
                break;
            case 12:
                Box8.Image = image2;
                break;
            case 13:
                Box_13.Image = image2;
                break;
            case 14:
                Box_14.Image = image2;
                break;
            case 15:
                Box_15.Image = image2;
                break;
            case 16:
                Box_16.Image = image2;
                break;
            case 17:
                Box_17.Image = image2;
                break;
            case 18:
                Box_18.Image = image2;
                break;
            case 19:
                Box_19.Image = image2;
                break;
            case 20:
                Box_20.Image = image2;
                break;
        }

    switch (Patter_1[switch_Counter].Move2)
    {
        case 0:
            Box_1.Image = image3;
            break;
        case 1:
            Box_2.Image = image3;
            break;
        case 2:
            Box_2.Image = image3;
            break;
        case 3:
            Box_3.Image = image3;
            break;
        case 4:
            Box_4.Image = image3;
            break;
        case 5:
            Box_5.Image = image3;
            break;
        case 6:
            Box_6.Image = image3;
            break;
        case 7:
            Box_7.Image = image3;
            break;
        case 8:
            Box12.Image = image3;
            break;
        case 9:
            Box_9.Image = image3;
            break;
        case 10:
            Box_10.Image = image3;
            break;
        case 11:
            Box_11.Image = image3;
            break;
        case 12:
            Box8.Image = image3;
            break;
        case 13:
            Box_13.Image = image3;
            break;
        case 14:
            Box_14.Image = image3;
            break;
        case 15:
            Box_15.Image = image3;
            break;
        case 16:
            Box_16.Image = image3;
            break;
        case 17:
            Box_17.Image = image3;
            break;
        case 18:
            Box_18.Image = image3;
            break;
        case 19:
            Box_19.Image = image3;
            break;
        case 20:
            Box_20.Image = image3;
            break;
    }

    switch (Patter_1[switch_Counter].Move3)
    {
        case 0:
            Box_1.Image = image4;
            break;
        case 1:
            Box_2.Image = image4;
            break;
        case 2:
            Box_2.Image = image4;
            break;
        case 3:
            Box_3.Image = image4;
            break;
        case 4:
            Box_4.Image = image4;
            break;
        case 5:
            Box_5.Image = image4;
            break;
        case 6:
            Box_6.Image = image4;
            break;
        case 7:
            Box_7.Image = image4;
            break;
        case 8:
            Box12.Image = image4;
            break;
        case 9:
            Box_9.Image = image4;
            break;
        case 10:
            Box_10.Image = image4;
            break;
        case 11:
            Box_11.Image = image4;
            break;
        case 12:
            Box8.Image = image4;
            break;
        case 13:
            Box_13.Image = image4;
            break;
        case 14:
            Box_14.Image = image4;
            break;
        case 15:
            Box_15.Image = image4;
            break;
        case 16:
            Box_16.Image = image4;
            break;
        case 17:
            Box_17.Image = image4;
            break;
        case 18:
            Box_18.Image = image4;
            break;
        case 19:
            Box_19.Image = image4;
            break;
        case 20:
            Box_20.Image = image4;
            break;
    }

    switch_Counter++;
    if (switch_Counter >4  )
    {
        switch_Counter = 0;
    }
}

我使用了调试器,所以我知道代码已经到了最后一行,但是当它到达那里时,它什么也不做。调试器说: UIKit.UIKitThreadAccessException: UIKit Consistency error:你正在调用一个只能从UI线程调用的UIKit方法。

有什么原因吗?

EN

回答 1

Stack Overflow用户

发布于 2017-04-05 13:05:18

在修改UI视图时涉及到的任何操作,都需要在UI/主线程下进行。所以把代码放在的lambda中:

代码语言:javascript
复制
InvokeOnMainThread ( () => {
    // manipulate UI controls
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43221197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档