酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

画像ビューアっぽいものを作ってみた。 その3

Windows Mobileは、引数付きのThreadを生成出来ません(確か…)。

なので、引数付きThreadぽいクラスを定義します。

    /// <summary>
    /// 画像ダウンロード用スレッド
    /// </summary>
    public class DownLoadPictureThread
    {
        public EventHandler DownloadComplate;

        private PictureInfo Info { set; get; }
        private System.Threading.Thread Thread;
        private int RetryCount;

        public DownLoadPictureThread(PictureInfo info)
        {
            Info = info;
            Thread = new System.Threading.Thread(DownloadProc);
            RetryCount = 1;
        }

        public DownLoadPictureThread(PictureInfo info, int retryCount)
        {
            Info = info;
            Thread = new System.Threading.Thread(DownloadProc);
            RetryCount = retryCount;
        }

        public void Start()
        {
            Thread.Start();
        }

        private void DownloadProc()
        {
           // ここに画像をダウンロードする処理を書く
        }

        /// <summary>
        /// ダウンロードが完了した事を通知する
        /// </summary>
        /// <param name="bmp"></param>
        public void OnDownloadComplate(Bitmap bmp)
        {
            if (this.DownloadComplate != null)
            {
                this.DownloadComplate(this, new DownloadComplateEventArgs(this.Info));
            }
        }
    }

引数に先程定義した画像管理クラスを渡して、指定したURLの画像をDownloadProcメソッドでダウンロードします。ダウンロードが完了したらOnDownloadComplateメソッドで呼び出し元に通知します。

OnDownloadComplateメソッドの引数がおかしい気がするけど気にしない。