如何使用事件 return 来自 class 的值

How to return a value from class with events

我需要一个 class,它使用 WebBrowser 检索一些数据,然后 returns 该数据到另一个 class。问题是 WebBrowser 是异步的并且使用事件,所以 returns 数据在 WebBrowser.DocumentCompleted 事件被触发之前已经结束的方法,并且没有返回数据。我必须使用 WebBrowser 而不是 WebClient,因为我需要与网页进行交互。

我如何创建一个 class 在触发所有事件后 returns 数据,例如设置了一些布尔标志?

理想情况下,您应该在 class 中公开另一个事件,该事件将由 WebBrowsers 的 DocumentCompletedEvent 触发。这将为您 class 的消费者提供订阅此事件的可能性。否则,您将不得不阻塞调用者的线程以等待网络浏览器完成,这不是一件好事。