首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >完成CefSharp下载

完成CefSharp下载
EN

Stack Overflow用户
提问于 2017-09-12 11:06:33
回答 1查看 4.6K关注 0票数 1

我试着做一个小的下载工具,一个网站与CefSharp。对于下载文件,我使用了来自CefSharp的非常好的示例CefSharp。现在,我想在下载完成后做一些事情。我知道"downloadItem“有一个"IsComplete”值。但是,如果我把这样的东西放在"OnDownloadUpdated“方法中,就永远不会执行

代码语言:javascript
复制
        if (downloadItem.IsComplete) {
            //do stuff
        }

所以,我的问题是,在哪里我要检查我的下载项目是否完成?

编辑:完成DownloadHandler:

代码语言:javascript
复制
    public class DownloadHandler : IDownloadHandler {

    public event EventHandler<DownloadItem> OnBeforeDownloadFired;
    public event EventHandler<DownloadItem> OnDownloadUpdatedFired;
    private bool stop;
    private DownloadWindow window;

    public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback) {
        var handler = OnBeforeDownloadFired;
        if (handler != null) {
            handler(this, downloadItem);
        }

        if (!callback.IsDisposed) {
            using (callback) {
                callback.Continue(downloadItem.SuggestedFileName, showDialog: true);
            }
        }
        window = new DownloadWindow(downloadItem.TotalBytes, downloadItem.SuggestedFileName, this);
        window.Show();
    }

    public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback) {
        var handler = OnDownloadUpdatedFired;
        if (handler != null) {
            handler(this, downloadItem);
        }

        if (window != null) {
            window.UpdateProgress(downloadItem.ReceivedBytes);
        }

        if (stop) {
            callback.Cancel();
        }
    }

    public void StopDownload() {
        stop = true;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-12 11:23:08

您需要在OnDownloadUpdated方法中检查它。

代码语言:javascript
复制
public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
{

    if (downloadItem.IsComplete || downloadItem.IsCancelled)
        {
         //do stuff
        }
}

不要忘记,您的类必须实现IDownloadHandler接口。一种很好的调试策略是在此方法中放置断点,以查看/理解何时触发断点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46174834

复制
相关文章

相似问题

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