1

在我使用 P/Invoke 的 C# 程序中,我更改了窗口的过程地址。所以我可以对我感兴趣的 Windows 消息做出反应。

但是系统何时调用该过程?我有我在我的自定义过程和我的其余代码中操作的列表。系统如何决定何时可以或不能调用该过程,以及数据是否有可能被破坏?

例如

我在我的过程中将条目添加到列表中。

我通读了列表并处理了代码另一部分中的条目。

在我设法清除列表之前,该过程会接管并添加更多条目。

返回到我的代码的另一部分,列表被清除,新条目被丢弃而不被处理。

4

1 回答 1

1

您可能不应该使用 p/invoke 来执行此操作,因为它会干扰 Windows 窗体(或 WPF)管理消息泵的方式。

如果必须,您可以尝试以下方法: 在 Windows 消息上设置 Hook

或者您可以在主窗体类中覆盖 WndProc,无需进一步解释。

于 2012-12-01T16:34:19.170 回答