利用CheckForIllegalCrossThreadCalls=false設定跨執行緒訪問
在多執行緒程式中,新建立的執行緒不能訪問UI執行緒建立的視窗控制元件,如果需要訪問視窗中的控制元件,可以在視窗建構函式中將CheckForIllegalCrossThreadCalls設定為 false。具體如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Threading;
using System.Text;
using System.Windows.Forms;
namespace thread1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
CheckForIllegalCrossThreadCalls = false;
}
private Thread threada;
private void button1_Click(object sender, EventArgs e)
{
threada = new Thread(new ThreadStart(runner));
threada.Start();
}
private void runner()
{
for (int i = 0; i < 101; i++)
{
label1.Text = i.ToString();
Thread.Sleep(500);
}
}
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = "0";
}
private void Form1_FormClosing(object sender, EventArgs e)
{
if (threada.IsAlive)
threada.Abort();
}
}
}
在該應用中,一個視窗中有一個按鈕,一個label,通過點選按鈕,使label從0顯示到100。
相關文章
- c#基礎,單執行緒,跨執行緒訪問和執行緒帶引數C#執行緒
- c#-跨執行緒控制元件訪問問題C#執行緒控制元件
- 多執行緒,到底該設定多少個執行緒?執行緒
- 執行緒屬性設定執行緒
- Java多執行緒/併發12、多執行緒訪問static變數Java執行緒變數
- 如何利用執行緒堆疊定位問題執行緒
- 求助:請問下有訪問頻率限制的介面怎麼在 jmeter 執行緒組中設定JMeter執行緒
- PHP 設定多域名允許跨域訪問PHP跨域
- 阿里雲圖片跨域訪問設定阿里跨域
- 多執行緒-獲取和設定執行緒物件名稱執行緒物件
- 【java】【多執行緒】獲取和設定執行緒名字、獲取執行緒物件(3)Java執行緒物件
- 多執行緒-執行緒排程及獲取和設定執行緒優先順序執行緒
- Java利用執行緒工廠監控執行緒池Java執行緒
- 設定最佳執行緒數總結執行緒
- 執行緒池中的最大執行緒數、核心執行緒數和佇列大小的合理設定執行緒佇列
- 多執行緒訪問—限制某個方法只執行一次執行緒
- 多執行緒程式設計,處理多執行緒的併發問題(執行緒池)執行緒程式設計
- MySQL利用FREDATED實現跨例項訪問MySql
- 資料訪問連線池和執行緒池執行緒
- 關於多執行緒訪問靜態方法的問題執行緒
- Jmeter將token設定為全域性變數並跨執行緒進行傳遞引數JMeter變數執行緒
- 執行緒池的設計問題執行緒
- 如何設定tomcat執行緒池大小?Tomcat執行緒
- 利用C++多執行緒優化n王后問題C++執行緒優化
- 執行緒問題執行緒
- 用windbg檢查.NET執行緒池設定執行緒
- java多執行緒執行問題Java執行緒
- 利用CouchDB未授權訪問漏洞執行任意系統命令
- EventBus,輕鬆實現跨元件跨執行緒通訊元件執行緒
- 利用訊號量實現執行緒順序執行執行緒
- 多執行緒問題執行緒
- QT中跨執行緒警告的處理QT執行緒
- 使用委託及控制元件的invoke方法處理窗體控制元件的跨執行緒訪問控制元件執行緒
- 請問, 這樣設計執行緒合理嗎?執行緒
- Java多執行緒中執行緒安全與鎖問題Java執行緒
- 併發程式設計之多執行緒執行緒安全程式設計執行緒
- [短文速讀 -5] 多執行緒程式設計引子:程式、執行緒、執行緒安全執行緒程式設計
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒