RadBusyIndicator一个web调用和一个DispatcherTimer锁定了我的UI.需要取消按钮Windo

本文关键字:一个 UI 我的 取消 Windo 按钮 锁定 DispatcherTimer 调用 web RadBusyIndicator | 更新日期: 2023-09-27 18:27:30

下面是设置。

点击按钮点击

private void login_Click(object sender, RoutedEventArgs e)

我做了一个网络电话

 classes.WebDataAccess.Login(uname.Text, pword.Password);

然后启动DispatcherTimer

            timer.Interval = new TimeSpan(100);
            timer.Start();

然后它检查网络呼叫是否在其勾选上返回了任何内容

 void timer_Tick(object sender, EventArgs e)
        {
            if (classes.WebDataAccess.LoginBag.propBag.Count > 1)
            {
             ...

这一切都很顺利。除了愚蠢的Windows Phone认证要求你有一个取消按钮。所以我添加了一个取消按钮,UI被锁定了。。。你不能点击它。

我试着把所有这些都放在一个代表中

我试着把它全部放在一个Dispatch.BeginVoke线程中

我试着把async放在勾号法上。

我甚至试着摆脱我的雷达控制!

纳达,什么都没有。。。由于某些原因,UI被锁定。

我需要一个快速修复

RadBusyIndicator一个web调用和一个DispatcherTimer锁定了我的UI.需要取消按钮Windo

答案是使用BackgroundWorker

这就是我想出的的破解方法

BackgroundWorker bw = new BackgroundWoker();
 private void login_Click(object sender, RoutedEventArgs e)
        {
             bw.DoWork += (sender3,args3) => { 
                timer.Tick += (sender2, args) => {
                    if (classes.WebDataAccess.LoginBag.propBag.Count > 1)
                    {
                    ....

这样可以防止计时器锁定UI。