コード例 #1
0
    public async void PatchStart(DownloadSingleCompleteDelegate callback)
    {
        bool isInstalledJava = await JAVAInstaller.isJavaInstalled();

        if (isInstalledJava == false)
        {
            await JAVAInstaller.DownloadJava();
        }

        downloadFileCount = patchDatas.Count;
        if (PatchCheck())
        {
            Debug.WriteLine(PatchCheck());
            downloadCompleteDelegate(downloadFileCount, downloadCompleteCount, downloadFailedCount);
            return;
        }
        else
        {
            foreach (var m in patchDatas)
            {
                await MakeDownloadURL(m);
            }
            System.Threading.Thread.Sleep(1000);
            foreach (var m in patchDatas)
            {
                DownloadFile(m, callback);
            }
        }
    }
コード例 #2
0
    public async void DownloadFile(PatchData data, DownloadSingleCompleteDelegate callback)
    {
        try
        {
            WebClient wc = new WebClient();
            wc.DownloadFileAsync(new Uri(data.downloadURL), @"patchData\" + data.tempFileID + tempExtention);
            wc.DownloadFileCompleted += (object sender, AsyncCompletedEventArgs e) => {
                downloadCompleteCount += 1;
                callback(downloadFileCount, downloadCompleteCount, downloadFailedCount);

                if (downloadCompleteCount + downloadFailedCount == downloadFileCount)
                {
                    OnPatchComplete();
                }
            };
            wc.Dispose();
        }
        catch (Exception e)
        {
            downloadFailedCount += 1;
            callback(downloadFileCount, downloadCompleteCount, downloadFailedCount);
            if (downloadCompleteCount + downloadFailedCount == downloadFileCount)
            {
                OnPatchComplete();
            }
        }
    }