3

我创建了一个小应用程序,它应该从 Internet trought 获取一些数据Puppeteer Sharp,问题是在我实例化浏览器后,软件冻结而没有错误。

public partial class MainWindow : Window
{
    public Handler Handler { get; } = new Handler();

    public MainWindow()
    {
        InitializeComponent();            
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        Handler.Init(Handler).Wait();
    }
}

如您所见,我拥有Handler该软件的所有属性:

public class Handler
{
    private static Url URL = new Url("https://www.diretta.it/");
    public static Browser Browser { get; set; }

    public async Task<bool> Init(Handler prop)
    {
        DotNetEnv.Env.Load("./config.env");

        // The problem's here
        Browser = await Puppeteer.LaunchAsync(new LaunchOptions
        {
            Headless = true,
            ExecutablePath = Environment.GetEnvironmentVariable("CHROME_PATH"),
        });

        return true;
    }
}

这是哪里CHROME_PATHCHROME_PATH="C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"

我做错了什么?我也有最新版本的Chromeand PuppeteerSharp

4

1 回答 1

2

Window_Loaded将您的事件方法更改为async并对方法执行操作,事件处理程序方法是一个例外。在这种情况下使用代替是可以的。- 参考(我应该避免'async void'事件处理程序吗?):awaitInitasync voidasync Task

private async void Window_Loaded(object sender, RoutedEventArgs e) 
{  
   await Handler.Init(Handler);
}
于 2020-07-20T19:57:45.443 回答