我正在开发一个WinForms应用程序,其中包含一个用户控件,用户控件中的按钮会触发事件并由其他代码处理。其中一个按钮启动了一些进程,如果它们同时运行将会导致问题。我已经在代码中添加了逻辑来管理状态,通常情况下,如果该进程已经在运行,用户无法再次运行该过程。但是,如果用户双击该按钮,它会快速启动两次进程,我很难防止这种情况发生。
我想知道,最好的解决方法是什么?
我最开始尝试在单击事件中禁用按钮,但第二次单击在第一次单击导致按钮被禁用之前就到达了。在代码中设置其他标志也没有解决这个问题。
我正在考虑在引发事件的代码上添加某种同步锁,但我想知道是否有更好的想法。
由于这个项目大部分已经完成,所以我寻找那些不涉及彻底重写应用程序(例如实施组合应用程序块)的答案,但如果您有这样的想法,请随时发布它们,因为在我的下一个项目中我可以使用它们。
我想知道,最好的解决方法是什么?
我最开始尝试在单击事件中禁用按钮,但第二次单击在第一次单击导致按钮被禁用之前就到达了。在代码中设置其他标志也没有解决这个问题。
我正在考虑在引发事件的代码上添加某种同步锁,但我想知道是否有更好的想法。
由于这个项目大部分已经完成,所以我寻找那些不涉及彻底重写应用程序(例如实施组合应用程序块)的答案,但如果您有这样的想法,请随时发布它们,因为在我的下一个项目中我可以使用它们。