2017-09-12 31 views
0

私はCefSharpでウェブサイト用の小さなダウンローダツールを作ろうとしています。ファイルをダウンロードするには、CefSharpのかなり良い例のDownloadHandlerを使用します。今、私はダウンロードが完了した後にいくつかのことをしたい。私は、 "downloadItem"が "IsComplete"という値を持っていることを知っています。私はこの方法「をOnDownloadUpdated」、ものがそうCefSharpでのダウンロードを完了

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

を実行されることはありませんで、このようなものを置く場合、私は私のダウンロードしたアイテムが完了したかどうかを確認する必要がどこでも、私の質問は、ありますか?

EDIT:コンプリートDownloadHandler:

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; 
    } 
} 
+0

あなたの完全な 'DownloadHandler'を教えてください。 –

+0

@NicolasZawadaええ、それは – Mirco

答えて

1

あなたはOnDownloadUpdatedメソッド内でそれを確認する必要があります。

public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback) 
{ 

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

クラスでIDownloadHandlerインターフェイスを実装する必要があります。 デバッグの戦略として、このメソッドの中にブレークポイントを配置して、いつブレークポイントが発生するかを確認することができます。

+0

非常に興味深い動作があります。ダウンロードが初めて完了すると、そのものは実行されませんが、それ以降は常に実行されます。それは遅れたサイクルのようです。 – Mirco

+0

そして今、この行動が消えてしまった魔法 – Mirco

関連する問題