コード例 #1
0
        private async void UpdateMain()
        {
            Main main = App.Current.Windows[0] as Main;

            for (int i = 0; i < main.vieModel.CurrentMovieList.Count; i++)
            {
                try
                {
                    if (main.vieModel.CurrentMovieList[i]?.id.ToUpper() == vieModel.id.ToUpper())
                    {
                        DataBase cdb   = new DataBase();
                        Movie    movie = await cdb.SelectMovieByID(vieModel.DetailMovie.id);

                        cdb.CloseDB();
                        if (Properties.Settings.Default.ShowImageMode == "预览图")
                        {
                        }
                        else
                        {
                            movie.smallimage = StaticClass.GetBitmapImage(movie.id, "SmallPic");
                            movie.bigimage   = StaticClass.GetBitmapImage(movie.id, "BigPic");
                        }
                        main.vieModel.CurrentMovieList[i] = null;
                        main.vieModel.CurrentMovieList[i] = movie;
                        break;
                    }
                }
                catch { }
            }
        }
コード例 #2
0
        private async void DownLoad(object o)
        {
            //下载信息=>下载图片
            Movie movie = o as Movie;

            try
            {
                if (movie.id.ToUpper().IndexOf("FC2") >= 0)
                {
                    SemaphoreFC2.WaitOne();
                }
                else
                {
                    Semaphore.WaitOne();
                }
                if (Cancel | movie.id == "")
                {
                    return;
                }
                bool success; string resultMessage;
                //下载信息
                State = DownLoadState.DownLoading;
                if (movie.title == "" | movie.smallimageurl == "" | movie.bigimageurl == "" | movie.sourceurl == "")
                {
                    (success, resultMessage) = await Task.Run(() => { return(Net.DownLoadFromNet(movie)); });

                    if (success)
                    {
                        InfoUpdate?.Invoke(this, new InfoUpdateEventArgs()
                        {
                            Movie = movie, progress = downLoadProgress.value
                        });                                                                                                               //委托到主界面显示
                    }
                }


                DetailMovie dm = new DetailMovie();
                dm = DataBase.SelectDetailMovieById(movie.id);
                //下载小图
                await DownLoadSmallPic(dm);

                dm.smallimage = StaticClass.GetBitmapImage(dm.id, "SmallPic");
                InfoUpdate?.Invoke(this, new InfoUpdateEventArgs()
                {
                    Movie = dm, progress = downLoadProgress.value, state = State
                });                                                                                                                  //委托到主界面显示


                if (dm.sourceurl?.IndexOf("fc2club") >= 0)
                {
                    //复制大图
                    if (File.Exists(StaticVariable.BasePicPath + $"SmallPic\\{dm.id}.jpg") & !File.Exists(StaticVariable.BasePicPath + $"BigPic\\{dm.id}.jpg"))
                    {
                        File.Copy(StaticVariable.BasePicPath + $"SmallPic\\{dm.id}.jpg", StaticVariable.BasePicPath + $"BigPic\\{dm.id}.jpg");
                    }
                }
                else
                {
                    //下载大图
                    await DownLoadBigPic(dm);
                }
                dm.bigimage = StaticClass.GetBitmapImage(dm.id, "BigPic");
                lock (downLoadProgress.lockobject) downLoadProgress.value += 1;
                InfoUpdate?.Invoke(this, new InfoUpdateEventArgs()
                {
                    Movie = dm, progress = downLoadProgress.value, state = State
                });                                                                                                                  //委托到主界面显示

                Task.Delay(1000).Wait();
            }
            catch (Exception e)
            {
                Logger.LogE(e);
            }
            finally
            {
                if (movie.id.ToUpper().IndexOf("FC2") >= 0)
                {
                    SemaphoreFC2.Release();
                }
                else
                {
                    Semaphore.Release();
                }
            }
        }