C#多線程與跨線程訪問(wèn)界面控件的方法
本文實(shí)例講述了C#多線程與跨線程訪問(wèn)界面控件的方法。分享給大家供大家參考。具體分析如下:
在編寫WinForm訪問(wèn)WebService時(shí),常會(huì)遇到因?yàn)榫W(wǎng)絡(luò)延遲造成界面卡死的現(xiàn)象。啟用新線程去訪問(wèn)WebService是一個(gè)可行的方法。
典型的,有下面的啟動(dòng)新線程示例:
{
if (FileName.Text.Trim() == "") return;
StatusLabel.Text = "正在加載";
S_Controllers_Bins.S_Controllers_BinsSoapClient service = new S_Controllers_Bins.S_Controllers_BinsSoapClient();
S_Controllers_Bins.Controllers_Bins m = service.QueryFileName(FileName.Text.Trim());
if (m != null)
{
//todo:
StatusLabel.Text = "加載成功";
}else
StatusLabel.Text = "加載失敗";
}
private void BtnLoadBinInformation(object sender, EventArgs e)
{
Thread nonParameterThread = new Thread(new ThreadStart(LoadRemoteAppVersion));
nonParameterThread.Start();
}
運(yùn)行程序的時(shí)候,如果要在線程里操作界面控件,可能會(huì)提示不能跨線程訪問(wèn)界面控件,有兩種處理方法:
1.啟動(dòng)程序改一下:
/// 應(yīng)用程序的主入口點(diǎn)。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
2.使用委托
private void BtnLoadBinInformation(object sender, EventArgs e)
{
LoadRemoteAppVersionDelegate func = new LoadRemoteAppVersionDelegate(LoadRemoteAppVersion);//<span style="font-family: Arial, Helvetica, sans-serif;">LoadRemoteAppVersion不用修改</span>
func.BeginInvoke(null, null);
}
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
- C#中跨線程訪問(wèn)控件的實(shí)現(xiàn)方法
- C#?winform?窗體控件跨線程訪問(wèn)的實(shí)現(xiàn)
- C#?winform跨線程操作控件的實(shí)現(xiàn)
- C#多線程異步執(zhí)行和跨線程訪問(wèn)控件Helper
- C#-WinForm跨線程修改UI界面的示例
- 淺談C#跨線程調(diào)用窗體控件(比如TextBox)引發(fā)的線程安全問(wèn)題
- C#實(shí)現(xiàn)跨線程操作控件方法
- C#之WinForm跨線程訪問(wèn)控件實(shí)例
- C#中跨線程訪問(wèn)控件問(wèn)題解決方案分享
- C#中實(shí)現(xiàn)跨線程寫入的示例代碼
相關(guān)文章
.net 通過(guò) WebAPI 調(diào)用nsfwjs 進(jìn)行視頻鑒別功能
這篇文章主要介紹了.net 通過(guò) WebAPI 調(diào)用 nsfwjs 進(jìn)行視頻鑒別,文末給大家提到了FFMPEG獲取視頻關(guān)鍵幀并保存成jpg圖像的相關(guān)知識(shí),需要的朋友可以參考下2021-09-09
C#使用游標(biāo)實(shí)現(xiàn)補(bǔ)間函數(shù)
這篇文章主要為大家詳細(xì)介紹了C#使用游標(biāo)實(shí)現(xiàn)補(bǔ)間函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
C#實(shí)現(xiàn)基于加減按鈕形式控制系統(tǒng)音量及靜音的方法
這篇文章主要介紹了C#實(shí)現(xiàn)基于加減按鈕形式控制系統(tǒng)音量及靜音的方法,涉及C#引用user32.dll動(dòng)態(tài)鏈接庫(kù)操作系統(tǒng)音量的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
C#實(shí)現(xiàn)的Windows剪貼板監(jiān)視器功能實(shí)例【附demo源碼下載】
這篇文章主要介紹了C#實(shí)現(xiàn)的Windows剪貼板監(jiān)視器功能,結(jié)合實(shí)例形式分析了C#實(shí)現(xiàn)剪貼板監(jiān)視功能所涉及的相關(guān)Windows API函數(shù)與使用技巧,需要的朋友可以參考下2016-08-08
C#實(shí)現(xiàn)簡(jiǎn)易猜數(shù)字游戲
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡(jiǎn)易猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
淺談C#單例模式的實(shí)現(xiàn)和性能對(duì)比
這篇文章主要介紹了淺談C#單例模式的實(shí)現(xiàn)和性能對(duì)比的相關(guān)資料,詳細(xì)的介紹了6種實(shí)現(xiàn)方式,需要的朋友可以參考下2017-09-09
基于C#實(shí)現(xiàn)簡(jiǎn)易的鍵盤記錄器
本文將利用C#語(yǔ)言和HOOK技術(shù)來(lái)做一個(gè)鍵盤記錄器,看看一天下來(lái),我們點(diǎn)擊了多少次鍵盤,哪些鍵的使用頻率最高,感興趣的小伙伴可以嘗試一下2022-08-08

