“ ChromiumWebBrowser”不包含“ NewScreenshot”的定义

时间:2018-12-16 05:55:09

标签: cefsharp

我只是在研究CefSharp,并对NewScreenshot感到困惑。我已经找到了很多有关它的参考以及示例代码,但是没有一个起作用。我发现它在63.0文档中被标记为过时...

NewScreenshot是否已删除?如果是这样,用什么代替它(我如何分辨屏幕已渲染)?出于我的目的,阻塞(非异步)方法可以正常工作。

更新

在源代码中搜索CefSharp的最新版本,发现没有对NewScreenshot的引用。

我从@amaitland提到的最小示例开始。我进行了一些更改,以使其适合我的使用。作为该更改的一部分,我将Shutdown()调用移至了程序的析构函数。

当我运行该项目时,我收到一个神秘的错误,该错误涉及从与调用Initialize()的线程不同的线程调用Shutdown()。

浏览代码时,我看到了ScreenshotAsync,并且由于我没有(不知道)使用其他线程,因此怀疑它可能涉及到。我寻找另一种获取SVG图像的方法,并找到了NewScreenshot。哪个当然不能解决我的问题,那是 GC 在另一个线程中运行我的析构函数(我不知道会发生这种情况)。

无论如何,这一次我已经为NewScreenshot删除了ScreenshotAsync,这就是我到这里结束的方式。

我在处理程序中设置了一个断点(因为从未调用过,所以未包括在内)。我希望这是相关的代码。我已经省略了初始化代码,但我相信它与示例没有什么不同。

public static void Main()
{
   private const string url = "https://www.google.com/";

   browser = new ChromiumWebBrowser();

   browser.Paint += OnBrowserPaint;

   browser.Load(url)

   Console.ReadKey();
}

在调试器中逐步执行代码时,我在browser.Load(url)上设置了一个断点。如果我检查browser.Paint,会发现错误:

enter image description here

这是DeclaringMethod的工具提示:

enter image description here

我不知道这是否与我的事件处理程序未触发有关,但想在涉及事件的情况下指出这一点。

感谢您的其他建议,但我认为我需要找出为什么不应该触发的事件。

如果有帮助,我很乐意减少并上传该项目。哦,谢谢你的帮助!

0 个答案:

没有答案