最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

WPF中button按鈕同時點擊多次觸發(fā)click解決方法

 更新時間:2017年04月19日 14:20:50   作者:liningit  
這篇文章主要為大家詳細介紹了WPF中button按鈕同時點擊多次觸發(fā)click的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

解決WPF中button按鈕同時點擊多次觸發(fā)click的方法,供大家參考,具體內(nèi)容如下

  DateTime lastClick = DateTime.Now;
  object obj = new object();
  int i = 0;
  private void Button_Click(object sender, RoutedEventArgs e)
  {
   this.IsEnabled = false;  
   var t = (DateTime.Now - lastClick).TotalMilliseconds;
   i++;
   lastClick = DateTime.Now;
   System.Diagnostics.Debug.Print(t + "," + i + ";" + DateTime.Now);
   Thread.Sleep(2000);   
   this.IsEnabled = true;
  }

以上代碼并沒法解決用戶點擊兩次按鈕觸發(fā)兩次的問題,因為ui線程是單線程的,所以這個這樣會導(dǎo)致用戶連續(xù)點擊兩次,會兩秒后又調(diào)用Button_Click一次,輸出如下:

1207.069,1;2017年4月19日 13:58:22
2055.1176,2;2017年4月19日 13:58:24

所以要在this.IsEnabled = false;后面強制界面刷新,代碼如下:

private void Button_Click(object sender, RoutedEventArgs e)
  {
   this.IsEnabled = false;
   DispatcherHelper.DoEvents();
   var t = (DateTime.Now - lastClick).TotalMilliseconds;
   i++;
   lastClick = DateTime.Now;
   System.Diagnostics.Debug.Print(t + "," + i + ";" + DateTime.Now);
   Thread.Sleep(2000);   
   this.IsEnabled = true;
  }
  public static class DispatcherHelper
  {
   [SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
   public static void DoEvents()
   {
    DispatcherFrame frame = new DispatcherFrame();
    Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new DispatcherOperationCallback(ExitFrames), frame);
    try { Dispatcher.PushFrame(frame); }
    catch (InvalidOperationException) { }
   }
   private static object ExitFrames(object frame)
   {
    ((DispatcherFrame)frame).Continue = false;
    return null;
   }
  }

DispatcherHelper.DoEvents();這個方法會強制界面刷新,問題就解決了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

石家庄市| 乐业县| 皮山县| 绥阳县| 萍乡市| 垣曲县| 舟山市| 临朐县| 昂仁县| 通辽市| 武平县| 饶平县| 乐至县| 雷波县| 博湖县| 札达县| 革吉县| 三台县| 红安县| 政和县| 壶关县| 古交市| 中卫市| 乌鲁木齐市| 沂水县| 崇阳县| 清苑县| 马尔康县| 张家界市| 钟山县| 连云港市| 徐水县| 永嘉县| 新宾| 扎囊县| 毕节市| 类乌齐县| 六盘水市| 陈巴尔虎旗| 清徐县| 高唐县|