0
タイトルに「ObejectDisposedException」がある理由がわかりません。 "OnDownloadUpdated(..)"の最後の呼び出し中にダウンロードが完了したときに発生しています。ObjectDisposedExceptionしかし、なぜ、何が処分されていますか?
「this.Invoke(..)」という行が例外をスローします。
ChromiumWebBrowser browser;
public frmRocketPluginDownload()
{
InitializeComponent();
var settings = new CefSettings();
settings.BrowserSubprocessPath = @"x86\CefSharp.BrowserSubprocess.exe";
Cef.Initialize(settings, performDependencyCheck: false, browserProcessHandler: null);
browser = new ChromiumWebBrowser("");
browser.Dock = DockStyle.Fill;
browser.AddressChanged += Browser_AddressChanged;
browser.DownloadHandler = this;
panelBody.Controls.Add(browser);
}
public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
{
this.Invoke((MethodInvoker)delegate
{
if (downloadItem.PercentComplete == 100)
{
this.Show();
}
});
}
フォームはダウンロード中に表示されず、コード内のどこでも閉じないので、これは問題ではないと思います。 –
例外の行が "this.Invoke(..)"の場合は、フォームが破棄されたことを意味します。今、あなたはそれが処分された理由を理解する必要があります。例外をスローするエラー行にあるオブジェクトは、その.Dispose()メソッドが呼び出されています。ダウンロード中にフォームを非表示にしないようにしてください。フォームが問題であるかどうかをすぐに発見すると思います。 – Wolf5
ありがとうございます。 "this.visible = false"を削除することによって解決されましたが、なぜこの行が問題であったのか本当に分かりません。 –