我想在ShowDialog()
触发键盘钩子事件时调用,但我遇到了一些困难:
- ShowDialog() 阻塞,所以我不能从钩子触发事件中调用它,因为它会阻塞操作系统。
- 我可以启动一个新线程并
ShowDialog()
从那里调用,但我得到了一些令人讨厌的异常。我想我不能调用ShowDialog()
任何其他线程。 - 我可以启动一个计时器:在接下来的 50 毫秒调用
ShowDialog()
中(顺便说一句,这是一个令人讨厌的 hack,我宁愿不这样做)。但是随后计时器在一个新线程中触发,然后我遇到了上一个项目符号中解释的相同问题。
有办法吗?