2
A
回答
7
你嘗試MSDN Control.Invoke
我只是寫了一個小的WinForm程序來演示Control.Invoke。 創建窗體時,在後臺線程上開始一些工作。完成該工作後,更新標籤中的狀態。
public Form1()
{
InitializeComponent();
//Do some work on a new thread
Thread backgroundThread = new Thread(BackgroundWork);
backgroundThread.Start();
}
private void BackgroundWork()
{
int counter = 0;
while (counter < 5)
{
counter++;
Thread.Sleep(50);
}
DoWorkOnUI();
}
private void DoWorkOnUI()
{
MethodInvoker methodInvokerDelegate = delegate()
{ label1.Text = "Updated From UI"; };
//This will be true if Current thread is not UI thread.
if (this.InvokeRequired)
this.Invoke(methodInvokerDelegate);
else
methodInvokerDelegate();
}
+0
非常感謝,這非常棒,正是我一直在尋找的!我一直在嘗試使用Control.Invoke,但並不真正瞭解我在做什麼。 雖然有一個問題 - 我得到一個錯誤: 「'代表':標識符未找到」 謝謝! –
+0
@Luke您使用的是什麼版本的.Net? – iraSenthil
相關問題
- 1. 如何在Windows窗體中調用usercontrol
- 2. 誰在Windows窗體程序中調用窗體加載事件?
- 3. Windows窗體調用中斷Task.Result
- 4. 在Windows窗體和本地化中調整窗體大小
- 5. Windows窗體 - 在主窗體
- 6. 從Windows窗體類調用PThread到Windows窗體類中的函數
- 7. Windows窗體調整大小
- 8. 在Windows窗體
- 9. 在DLL中創建回調以在MSVC Windows窗體中使用
- 10. 調用凍結我的Windows窗體
- 11. 調用Windows窗體線程和睡眠
- 12. 禁用調整Windows窗體大小
- 13. 調試Windows窗體應用程序
- 14. 以其類名稱調用Windows窗體
- 15. 如何在Windows窗體應用程序中調用magento soap webservice?
- 16. 在Windows窗體中繪圖
- 17. 在Windows窗體中的GIF
- 18. 線程在Windows窗體中
- 19. 在Windows窗體中調整窗口/控件的比例
- 20. 在Windows窗體C#
- 21. 轉換Windows窗體到Windows Metro窗體
- 22. 在C#中使用Windows窗體創建多個窗體?
- 23. 在C++中打開新窗體Windows窗體應用程序
- 24. 如何在Windows窗體中關閉多個窗體應用
- 25. 在windows窗體中嵌入GLFW窗口
- 26. Windows窗體 - 從父窗體
- 27. Windows窗體中的主窗體
- 28. Windows窗體中的MDI子窗體
- 29. 在vb.net中動態調用一個windows窗體的標題
- 30. 在Windows窗體中調整控件位置應用程序
這將有助於您的目的更具體。 – gsharp
對不起,我正在編寫一個程序,它通過串行連接與設備進行通信。目前,程序會嘗試運行一段代碼,直到輸入發生更改,但是該部分位於GUI線程中,因此程序無法響應更改。我被告知我需要將代碼段放在另一個線程中,並使用Invoke來訪問它。希望這會有所幫助,謝謝 –
請下次更新您的問題,而不是寫在評論中。 – gsharp