

IISサーバー側にて数秒内で  
１〜７枚作成される画像をXamarinのiOSにて表示しようとしています。  
Androidは表示できたのですが、  
iOSは何故かうまくいきません。  
手法は単純でタイマーで監視し経過したら  
サーバー内のHTTPアドレスを見に行く感じです。  
Android版の方では特に問題なく表示します。  
何故かiOSになると表示されません。  
何か原因があるのでしょうか？

よろしくお願い致します。

[code]

    using System.Timers;
    using Xamarin.Forms;
    
    namespace Assd1Tab.Views
    {
        public partial class ReceiveDataPageiOS : ContentPage
        {
            /// <summary>Timer用コントロール</summary>
            public Timer Timer1 { get; set; } = null;
            
            public ReceiveDataPageiOS()
            {
                InitializeComponent();
                Timer1 = new Timer();
                Timer1.Interval = 1000;
                Timer1.Start();
                Timer1.Elapsed += new ElapsedEventHandler(OnTimerEvent);
            }
    
            /// <summary>
            /// タイマーイベント
            /// </summary>
            /// <param name="source"></param>
            /// <param name="e"></param>
            private void OnTimerEvent(object source, ElapsedEventArgs e)
            {
                Image1.Source = "http://192.168.0.10/Pic1/Pic0.Jpeg";
                Image2.Source = "http://192.168.0.10/Pic1/Pic1.Jpeg";
                Image3.Source = "http://192.168.0.10/Pic1/Pic2.Jpeg";
                Image4.Source = "http://192.168.0.10/Pic1/Pic3.Jpeg";
                Image5.Source = "http://192.168.0.10/Pic1/Pic4.Jpeg";
                Image6.Source = "http://192.168.0.10/Pic1/Pic5.Jpeg";
                Image7.Source = "http://192.168.0.10/Pic1/Pic6.Jpeg";
                Image8.Source = "http://192.168.0.10/Pic1/Pic7.Jpeg";
                
            }
    
            /// <summary>
            /// コンテンツロードイベント(このフォーム呼び出し時のイベント)
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void ContentPage_Appearing(System.Object sender, System.EventArgs e)
            {
                Image1.Source = "http://192.168.0.10/Pic1/Pic0.Jpeg";
            }
    
            /// <summary>
            /// コンテンツアンロードイベント(このフォーム消去時のイベント)
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void ContentPage_Desappearing(System.Object sender, System.EventArgs e)
            {
            }
            private void ContentPage_LayoutChanged(object sender, System.EventArgs e)
            {
    
            }
        }
    }
    
    
    <?xml version="1.0" encoding="UTF-8"?>
    <ContentPage
        xmlns="http://xamarin.com/schemas/2014/forms"
        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
        x:Class="Assd1Tab.Views.ReceiveDataPageiOS"
        Appearing="ContentPage_Appearing" Disappearing="ContentPage_Desappearing" LayoutChanged="ContentPage_LayoutChanged">
        <ContentPage.Content >
            <StackLayout Padding="0,0,0,0" VerticalOptions="Center">
                <Grid x:Name="ReciveGrid" RowSpacing="0" ColumnSpacing="0">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="100"/>
                        <RowDefinition Height="100"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition />
                        <ColumnDefinition />
                        <ColumnDefinition />
                        <ColumnDefinition />
                        <ColumnDefinition />
                        <ColumnDefinition />
                        <ColumnDefinition />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Image x:Name="Image1" Grid.Column="1" Grid.Row="0"/>
                    <Image x:Name="Image2" Grid.Column="2" Grid.Row="0"/>
                    <Image x:Name="Image3" Grid.Column="3" Grid.Row="0"/>
                    <Image x:Name="Image4" Grid.Column="4" Grid.Row="0"/>
                    <Image x:Name="Image5" Grid.Column="5" Grid.Row="0"/>
                    <Image x:Name="Image6" Grid.Column="6" Grid.Row="0"/>
                    <Image x:Name="Image7" Grid.Column="7" Grid.Row="0"/>
                    <Image x:Name="Image8" Grid.Column="8" Grid.Row="0"/>
                </Grid>
            </StackLayout>
        </ContentPage.Content>
    </ContentPage>
    
[/code]


CC BY-SA 4.0
2020-11-28T08:01:59.137
72253
2020-11-30T23:25:17.157
2020-11-30T05:43:05.397
42907
42907
question
ios xamarin
XamarinのiOSによるTimer監視下における画像表示について


以下の様にTimerイベントの箇所を編集したらiOS版は動作致しました。

[code]

    private void OnTimerEvent(object source, ElapsedEventArgs e)
    {
        Device.BeginInvokeOnMainThread(() =>
        {
            Image1.Source = "http://192.168.0.10/Pic1/Pic0.Jpeg";
            Image2.Source = "http://192.168.0.10/Pic1/Pic1.Jpeg";
            Image3.Source = "http://192.168.0.10/Pic1/Pic2.Jpeg";
            Image4.Source = "http://192.168.0.10/Pic1/Pic3.Jpeg";
            Image5.Source = "http://192.168.0.10/Pic1/Pic4.Jpeg";
            Image6.Source = "http://192.168.0.10/Pic1/Pic5.Jpeg";
            Image7.Source = "http://192.168.0.10/Pic1/Pic6.Jpeg";
            Image8.Source = "http://192.168.0.10/Pic1/Pic7.Jpeg";
        });
    }
    
[/code]


CC BY-SA 4.0
2020-11-30T23:25:17.157
72301
2020-11-30T23:25:17.157
42907
72253
answer