Winform中使用委託實現跨執行緒安全呼叫控制元件
本來是個很簡單的東西,之前做專案也有碰到,但是每次遇到了都要重新去Google..
其實跨執行緒呼叫控制元件還有個更簡單的辦法,直接Control.CheckForIllegalCrossThreadCalls = false就好,可這樣是非安全的,所以大部分地方都不推薦使用。
這裡自己寫了個例子,讓自己這次就好好的把這個消化掉!
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->namespace CrossThread
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//主執行緒點選按鈕事件
private void btnSetLabel_Click(object sender, EventArgs e)
{
try
{
//在新執行緒中修改label的值
Thread tdSetLabel = new Thread(new ThreadStart(SetLabel));
tdSetLabel .Start();
}
catch
{
}
}
//宣告一個委託
private delegate void dlgateCrossThread(string labelText);
private void SetLabel(string text)
{
if (labState.InvokeRequired)
{
dlgateCrossThreadrt = new dlgateCrossThread(SetLabel);
this.Invoke(rt,new Object(){text});
}
else
{
labState.Text = text;
}
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-566846/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- winform實現委託ORM
- 使用委託開啟多執行緒(多執行緒深入)執行緒
- C#Invoke委託在多執行緒中的使用C#執行緒
- 子執行緒與UI執行緒的通訊(委託)執行緒UI
- Winform SynchronizationContext多執行緒更新畫面控制元件ORMContext執行緒控制元件
- 託管C++執行緒鎖實現C++執行緒
- C#使用委託實現函式回撥,方法呼叫攔截C#函式
- 執行緒安全佇列(使用互斥鎖進行實現)執行緒佇列
- EventBus,輕鬆實現跨元件跨執行緒通訊元件執行緒
- Python實現執行緒安全佇列Python執行緒佇列
- Spring Boot使用@Async實現非同步呼叫:自定義執行緒池Spring Boot非同步執行緒
- 5招教你實現多執行緒場景下的執行緒安全!執行緒
- Java中實現執行緒安全HashSet的幾種方法 | baeldungJava執行緒
- dotnet 委託的實現解析
- Java中如何實現執行緒呢?Java執行緒
- Java中實現執行緒的方式Java執行緒
- Map實現執行緒安全的3種方式執行緒
- 行為委託
- performSelector:withObject:afterDelay: 在子執行緒中呼叫不執行performSelectorObject執行緒
- Java併發實戰一:執行緒與執行緒安全Java執行緒
- Java多執行緒中執行緒安全與鎖問題Java執行緒
- 使用Runnable介面實現執行緒的方法執行緒
- Java之實現多執行緒的方式三:實現Callable介面(結合執行緒池使用)Java執行緒
- 『動善時』JMeter基礎 — 38、JMeter中實現跨執行緒組關聯JMeter執行緒
- dotnet 委託的實現解析(2)開放委託和封閉委託 (Open Delegates vs. Closed Delegates)
- QT中跨執行緒警告的處理QT執行緒
- jquery中如何使用事件委託?jQuery事件
- C# WinForm 執行緒間操作無效: 從不是建立控制元件的執行緒訪問它的解決辦法C#ORM執行緒控制元件
- Java多執行緒之—Synchronized方式和CAS方式實現執行緒安全效能對比Java執行緒synchronized
- 執行緒安全執行緒
- 多執行緒系列之 執行緒安全執行緒
- iOS 多執行緒之執行緒安全iOS執行緒
- Java執行緒(一):執行緒安全與不安全Java執行緒
- Spring Boot使用@Async實現非同步呼叫:ThreadPoolTaskScheduler執行緒池的優雅關閉Spring Boot非同步thread執行緒
- 使用Java實現多執行緒程式設計Java執行緒程式設計
- 使用多執行緒實現郵件傳送執行緒
- 不使用synchronized和lock,如何實現一個執行緒安全的單例?synchronized執行緒單例
- Golang map執行緒安全實現及sync.map使用及原理解析。Golang執行緒
- java執行緒實現方式Java執行緒