我一直在嘗試執行寫在標題中的簡單任務。我只能想到使用定時器,線程睡眠或後臺工作,但我只會做一次這個任務..所以我想避免做一些功能或只是一次。我嘗試了線程睡眠,但它沒有顯示睡眠前的mainform ...有什麼建議嗎?Winform - 顯示mainform,等待,然後修改標籤
-1
A
回答
1
在Form.Load
事件中使用:
private const int DelayMilliseconds = 500;
private void Form1_Load(object sender, EventArgs e)
{
new System.Threading.Timer(_ => Invoke(new Action(() => _myLabel.Text = "bla")),
null,
DelayMilliseconds,
Timeout.Infinite);
}
由於您只指定延遲和無週期,所以定時器將只運行一次。但是,由於定時器回調是在不同的線程上執行的,因此需要在UI線程上修改標籤的動作爲Invoke
。
6
最簡單的方法是使用await Task.Delay
:使用您正在使用的.NET版本
private async void Form_Load(object sender, EventArgs e)
{
await Task.Delay(timespan);
label1.Text = "Hello world";
}
如果您沒有訪問await
,那麼你最好的選擇將是使用Timer
。是的,這是相當一部分代碼。這僅僅反映了異步操作的複雜性。 await
做了很多事情使這更簡單;沒有它,這不是一個適合簡潔解決方案的問題。
0
使用System.Timer實例
- 作出事件處理程序與Timer.Elapsed
- 設定定時器間隔
- 計時器開始爲應用程序的火災高達 -after經過設置標籤 - 停止計時器計時器
相關問題
- 1. 試圖讓標籤顯示文本,等待,然後關閉程序(C#)
- 2. HTML顯示圖像,然後等待,然後顯示另一個圖像
- 3. 動態修改winform標籤頁
- 4. 顯示等待光標?
- 5. 等待值改變,然後執行塊
- 6. 等待子視圖顯示,然後處理,然後刪除子視圖
- 7. AdvToolbar顯示在MainForm,然後可能將它拖到各地
- 8. pthread播放然後等待?
- 9. 等待進程完成,然後顯示消息(C#)
- 10. 等待頁面加載,然後顯示它,沒有iframe?
- 11. 當圖像完全加載,然後顯示其他等待
- 12. 顯示「等待」光標,然後窗體帖子返回一個文件
- 13. 隱藏按鈕,然後等待2秒後再次顯示,點擊按鈕後
- 14. 「聽」等待標籤打印
- 15. 在TextChanged TextBox上顯示等待光標
- 16. java等待光標顯示問題
- 17. 等待Winform UserControl加載
- 18. 顯示等待圖像,等待MVC視圖顯示
- 19. 我如何等待後臺線程的結果,然後再顯示它?
- 20. 運行PHP,等待;運行JavaScript,等待;然後提交表單?
- 21. C#ASP.NET - 如何修改API的JSON對象,然後顯示
- 22. YUI3 - 修改標籤
- 23. 標籤CSS修改
- 24. 修改XML標籤
- 25. 等待活動顯示
- 26. 如何等待顯示popin?
- 27. 等待ajax顯示結果
- 28. 顯示等待屏幕WindowsPhone8
- 29. Findbugs標記在修復問題後仍然顯示
- 30. 在iPhone UI修改期間等待
使用定時器的一個例子請 –
+1。如果.NET 4.5可用,這相當好,當然比我的答案好。 – alsed42
我無法使用這個解決方案,可能是因爲我的.NET。我有框架4.太糟糕了不能標記更多的答案 – Vantalk