为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法以无响应的形式捕获 keydown 事件

有没有办法以无响应的形式捕获 keydown 事件

C#
富国沪深 2022-07-10 16:06:58
我有一个表单,它有一个在其中运行的耗时方法。我想在它运行时用按键取消该方法,但是由于一些限制,我无法将该方法转换为任务或任何异步。场景是,用户按下一个按钮,该按钮调用该方法(假设它运行一段时间(x > y)),这需要一些时间,如果用户按下 esc 键,我想打破该方法。如何捕获无响应表单的按键?由于 while 方法阻止了表单,因此表单的按键方法没有响应。
查看完整描述

2 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

您可以尝试Application.DoEvents从耗时的方法调用,但这也会处理各种消息,包括尝试关闭表单等危险消息。

如果您可以重新编写代码并将我们长期运行的方法放在BackgroundWorker.


查看完整回答
反对 回复 2022-07-10
?
郎朗坤

TA贡献1921条经验 获得超9个赞

正如您所说,它没有响应并且无法捕获输入。相反,您可以实现一个后台线程在那里完成您的工作,因此您可以根据需要取消线程



查看完整回答
反对 回复 2022-07-10
  • 2 回答
  • 0 关注
  • 84 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信