当前位置: 首页 > 知识库问答 >
问题:

挣扎着。Dispose()使用puppetersharp的返回方法

祁博雅
2023-03-14

我正在努力。Dispose()和Chromium正在构建并崩溃我的计算机,因为这是一个持续数天的过程

但是,我不能把放进去。Dispose()return之后,因为它将不可访问,如果我将它放在return之前,则内容字符串将变得过时。

    var docBContent = await renderHtmlAsync(url2);
    fromDoc.LoadHtml(docBContent);

public static async Task<string> renderHtmlAsync(string url2)
{
    await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultChromiumRevision);
    Browser browser = await Puppeteer.LaunchAsync(new LaunchOptions
    {
        Headless = true
    });
    var page = await browser.NewPageAsync();
    page.DefaultTimeout = 0;
    var navigation = new NavigationOptions
    {
        Timeout = 0,
        WaitUntil = new[] {
                WaitUntilNavigation.DOMContentLoaded }
    };
    await page.GoToAsync(url2, navigation);
    var content = page.GetContentAsync();

    return await content;
}

我该如何解决这个问题?

共有1个答案

荣沈义
2023-03-14

您可以使用使用块:

public static async Task<string> renderHtmlAsync(string url2)
{
    await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultChromiumRevision);
    using (Browser browser = await Puppeteer.LaunchAsync(new LaunchOptions
    {
        Headless = true
    }))
    {
        var page = await browser.NewPageAsync();
        page.DefaultTimeout = 0;
        var navigation = new NavigationOptions
        {
            Timeout = 0,
            WaitUntil = new[] {
                    WaitUntilNavigation.DOMContentLoaded }
        };
        await page.GoToAsync(url2, navigation);
        var content = page.GetContentAsync();

        return await content;
    }
}

这就像:

var myObject = new DispoableObject();
try
{
    // insert code
    return result;
}
finally
{
    myObject.Dispose();
}

始终执行finally中的代码,即使在try块中抛出异常也是如此。

 类似资料:
  • 如有任何帮助,将不胜感激。 谢谢-杰克

  • 问题内容: 我遇到了Java安全问题。我有一个使用pdfbox-1.7.1.jar解密我知道密码的PDF的代理。该jar已放置在服务器和我的客户机上的/ jvm / lib / ext中,这使我对堆栈跟踪有了一点点的了解: 客户端和服务器都使用8.5.3。代理安全级别设置为3。将jar放入代理本身无济于事。代理的签名者是服务器上的完全管理员。安全异常似乎指向“ insertProviderAt”

  • 我一直试图通过示例来学习xcode和swift,我已经尝试了我搜索的大量示例,但所有这些示例都以这样或那样的方式失败了...通常是错误的swift版本或语法。我想做一个非常简单的应用程序,对我的个人气象站进行api调用,并将json数据打印到我的single view应用程序上的文本框或框架中。我想学习的细节和介绍,我走。我想完善的故事板和视图,因为我学习新的概念。 https://api.wea

  • 💼 楼主岗位:软件测试 作为24届应届毕业生,临春招结束找到一个实习转正offer。孤身一人,从山西跑到上海,花了俩天时间租房子住青旅,下面谈谈我的真实感受: 首先还是要提醒一下25届学弟学妹们,应届秋招的时候,出去实习一定要找转正实习岗位! 我自己的情况是:去年下半年干了半年没转正的实习,今年春招投了600+公司,终于偶遇了目前收留俺的公司,节后也是要准备实习一个月看看能否转正。 对于测试人的

  • JavaFX从Windows剪贴板获取图像的默认方式, ,似乎已损坏。 图像的透明度似乎出了问题。设置在黑色背景上,图像看起来很好,但设置在白色背景上,根本没有显示任何内容。 您可以使用这个最小、完整、可验证的示例测试剪贴板。 环境: Windows 7,Java8更新202 下面,我来描述一下我已经知道的事情。 从剪贴板获取图像 Awt vs FX 剪贴板中的图像在 JavaFX 8 应用程序中

  • 我要制作一个原生(意思是;不在浏览器中)移动应用程序。由于我是一名Web开发人员,我正在努力决定是否应该尝试Phonegap还是只是在java或Objective-c中构建一个原生应用程序。 应用程序要求很简单。GPS/wifi定位、Facebook集成,我想我需要一个数据库来处理一些特定于Facebook应用程序的朋友关系。比如说比赛中的高分,诸如此类的东西。 我是一名web开发人员,目前既不懂