我的C#WinForms UI有一些用戶可以使用滑塊調整的參數。 UI的很多部分可以基於滑塊值進行交互式更新。但是,某些部件需要較長的計算時間,因此需要設置一些開銷。我只想在用戶停止移動滑塊2秒後才啓動此更新過程。什麼是最好的方法來做到這一點?經過n秒後啓動UI更新的最佳方式是什麼?
0
A
回答
1
如果在2秒後有任何更改,您可以使用定時器控件重置UI。
計時器還會檢查每次更改後標記的變量,因此只有當標誌沒有更改並且計時器超時時,UI纔會被解壓。
0
我會有一個私人實例成員引用一個線程計時器。當計時器達到2秒鐘時,包含計算的事件將觸發。所有滑塊都會有一個更改監聽器,它可以將計時器設置爲0並啓動計時器。
2
Reactive Framework將是完美的。如果你有C#3.5,你可以使用它。
Observable.FromEvent<ScrollEventArgs>(vScrollBar1, "Scroll")
.Throttle(TimeSpan.FromSeconds(2)) // Wait for two second alter all Scroll event ended
.ObserveOnWindowsForms() // Make the lambda expression run on the UI thread
.Subscribe(
e =>
{
// Update your stuff
labelControl1.Text = e.EventArgs.NewValue.ToString();
});
可以擺脫ObserveOnWindowsForms
通話,如果你不想讓你的用戶界面在運行LAMDA掛,但要確保你正確地訪問你的UI組件,以避免交叉線程例外。
0
您需要使用此計時器:System.Windows.Forms.Timer。爲什麼?它在UI線程上執行,這意味着您不必使用InvokeRequired或BeginInvoke在UI線程上執行UI更新代碼。
相關問題
- 1. 什麼是更新計時器UI的最佳方式
- 2. 什麼是啓動後臺進程的最佳方式,可以稍後訪問
- 3. 從x509Certificate2啓動RSACryptoServiceProvider的最佳方式是什麼?
- 4. 獲取Perl數組的最後N個元素的最佳方式是什麼?
- 5. 什麼是更新樹面板的最佳方式
- 6. 什麼是更新大量帳戶的最佳方式
- 7. 什麼是處理幾列更新的最佳方式
- 8. 什麼是更新數據庫列表的最佳方式?
- 9. MVVM在命令之後更新UI的方式是什麼?
- 10. 首次啓動電影時啓動電影的最佳方式是什麼
- 11. 在Perl中獲得Epoch毫秒的最佳方式是什麼?
- 12. 什麼是自動化後構建操作的最佳方式?
- 13. 什麼是自動更換文字的最佳方式?
- 14. 3秒後刷新頁面內容/值的最佳方法是什麼?
- 15. 過度裝配神經網絡的最佳方法是什麼?
- 16. 在SQL中存儲聖經的最佳方式是什麼?
- 17. 什麼是使用jquery ui themeroller主題的最佳方式
- 18. 等待UI控件的最佳方式是什麼?
- 19. 鍵入()的最佳方式是什麼?
- 20. 什麼是開源的最佳方式?
- 21. 「投票」的最佳方式是什麼?
- 22. 啓動多個Sprite的Cocos2d動畫的最佳方式是什麼?
- 23. 從用戶(控制檯)獲取n * n矩陣的最佳方式是什麼?
- 24. 更新匹配公式以有條件格式的最佳方式是什麼?
- 25. 衡量應用/活動啓動時間的最佳方式是什麼?
- 26. 限制值變化時啓動動畫的最佳方式是什麼?
- 27. 在iPhone上進行自動UI測試的最佳方式是什麼?
- 28. 在n-gram模型中n的經驗發現最佳值是什麼?
- 29. 用新字段更新Google數據存儲的最佳方式是什麼?
- 30. 什麼是最近n秒內存儲數據點的最佳數據結構
整潔。我只是在編制我想要看的節日清單 - 我忘記了我想學習Rx框架,這讓我想起了。謝謝。 – 2009-12-18 15:13:56
我喜歡這個解決方案,即使流利的編程讓我傷心。最重要的是它需要Rx庫。 – Eric 2009-12-18 15:16:46