C# isenable 没有立刻生效

问题描述

IsEnabled 方法没有立刻生效

问题出现的环境背景及自己尝试过哪些方法

尝试过使用绑定方式也不行

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

    private void Calculate_Button_Click(object sender, RoutedEventArgs e)
    {
        //forbid the button
        Correction_Radio.IsEnabled = false;
        
        //长耗时操作
        do();
        
        //释放按钮
        ....
    }

你期待的结果是什么?实际看到的错误信息又是什么?

调用 isEnabled时候立即生效

阅读 2.7k
1 个回答
✓ 已被采纳新手上路,请多包涵

实际上isEnable生效了.
之所以看起来没有生效, 是因为UI线程卡死.
用异步操作可以避免这个问题.

        private async void Calculate_Button_Click(object sender, RoutedEventArgs e)
        {
                await Task.Run(() => {
                        do();//长耗时
                    }
                );
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进