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被锁定。
我需要一个快速修复
答案是使用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。