最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#?winform跨線程操作控件的實(shí)現(xiàn)

 更新時(shí)間:2022年06月08日 14:52:17   作者:xwwwill  
本文主要介紹了C#?winform跨線程操作控件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前提:當(dāng)我們使用Winform開(kāi)發(fā)的時(shí)候,經(jīng)常會(huì)遇到:System.InvalidOperationException:“線程間操作無(wú)效: 從不是創(chuàng)建控件“xxxx”的線程訪問(wèn)它。”

原因:發(fā)生次異常的原因是因?yàn)閣inform在渲染UI界面和操作界面數(shù)據(jù)的時(shí)候使用的是同一個(gè)線程。當(dāng)我們創(chuàng)建另外一個(gè)線程,去操作此線程的UI控件,會(huì)導(dǎo)致線程不安全。winform為了防止線程不安全,因此杜絕了這個(gè)跨線程操作,并且拋出異常。

異常舉例:創(chuàng)建兩個(gè)控件,一個(gè)是按鈕控件,一個(gè)是lable控件

private void button1_Click(object sender, EventArgs e)
        {
            Thread thread = new Thread(()=>
            {
                if (this.InvokeRequired)
                {
                    this.Invoke(new Action(() =>
                    {
                        lable1.Text = "Hello Thread!";
                    }));
                }
            }
            );
            thread.IsBackground = true;
            thread.Start();
        }

當(dāng)執(zhí)行此按鈕的時(shí)候,會(huì)導(dǎo)致跨線程操作異常。

解決方案:

使用InvokeRequired屬性,判斷是否是線程安全。

if (this.InvokeRequired) 
{
    this.Invoke(new Action(() =>
    {
        lable1.Text = "Hello World!";
    }));
}
else
{
    lable1.Text = "Hello World!";
}

到此這篇關(guān)于C# winform跨線程操作控件的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)C# winform跨線程操作控件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# 串口掃描槍讀取數(shù)據(jù)的實(shí)現(xiàn)

    C# 串口掃描槍讀取數(shù)據(jù)的實(shí)現(xiàn)

    本文主要介紹了C# 串口掃描槍讀取數(shù)據(jù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • 基于WPF開(kāi)發(fā)txt閱讀器

    基于WPF開(kāi)發(fā)txt閱讀器

    這篇文章主要為大家詳細(xì)介紹了如何基于WPF開(kāi)發(fā)一個(gè)簡(jiǎn)單的txt閱讀器,可以滿足文本文件的讀寫和保存,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • C#窗體實(shí)現(xiàn)點(diǎn)餐系統(tǒng)

    C#窗體實(shí)現(xiàn)點(diǎn)餐系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C#窗體實(shí)現(xiàn)點(diǎn)餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 用c# 自動(dòng)更新程序

    用c# 自動(dòng)更新程序

    這篇文章主要介紹了用c# 自動(dòng)更新程序的代碼示例,幫助大家更好的理解和使用c#編程語(yǔ)言,感興趣的朋友可以了解下
    2020-11-11
  • Unity3D使用UGUI開(kāi)發(fā)原生虛擬搖桿

    Unity3D使用UGUI開(kāi)發(fā)原生虛擬搖桿

    這篇文章主要為大家詳細(xì)介紹了Unity3D使用UGUI開(kāi)發(fā)原生虛擬搖桿,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 基于Avalonia實(shí)現(xiàn)自定義彈窗的示例詳解

    基于Avalonia實(shí)現(xiàn)自定義彈窗的示例詳解

    對(duì)于使用avalonia的時(shí)候某些功能需要到一些提示,比如異常或者成功都需要對(duì)用戶進(jìn)行提示,所以需要單獨(dú)實(shí)現(xiàn)彈窗功能,并且可以自定義內(nèi)部組件,這一期將手動(dòng)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的小彈窗,并且很容易自定義,希望大家喜歡
    2023-02-02
  • 在WinForm中發(fā)送HTTP請(qǐng)求的實(shí)現(xiàn)方法

    在WinForm中發(fā)送HTTP請(qǐng)求的實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇在WinForm中發(fā)送HTTP請(qǐng)求的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • 使用SkiaSharp在C#中如何生成圖像

    使用SkiaSharp在C#中如何生成圖像

    本文介紹了如何使用SkiaSharp庫(kù)在C#中生成和處理圖像,通過(guò)創(chuàng)建一個(gè)空白圖像并繪制一個(gè)正方形,我們展示了如何使用SkiaSharp的基本功能,如創(chuàng)建畫(huà)布、繪制圖形和保存圖像
    2025-01-01
  • C#中的不可變數(shù)據(jù)類型介紹(不可變對(duì)象、不可變集合)

    C#中的不可變數(shù)據(jù)類型介紹(不可變對(duì)象、不可變集合)

    這篇文章主要介紹了C#中的不可變數(shù)據(jù)類型介紹(不可變對(duì)象、不可變集合),本文講解了不可變對(duì)象、自定義不可變集合、Net提供的不可變集合、不可變優(yōu)點(diǎn)、不可變對(duì)象缺點(diǎn)等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • c# 實(shí)現(xiàn)KMP算法的示例代碼

    c# 實(shí)現(xiàn)KMP算法的示例代碼

    這篇文章主要介紹了c# 實(shí)現(xiàn)KMP算法的示例代碼,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-11-11

最新評(píng)論

都安| 女性| 长海县| 金门县| 孙吴县| 嘉义市| 建始县| 武乡县| 凉城县| 韶关市| 乌恰县| 疏附县| 房山区| 福海县| 东丰县| 右玉县| 东城区| 萍乡市| 靖西县| 庄浪县| 集安市| 收藏| 红河县| 秦皇岛市| 古田县| 甘孜县| 新安县| 泰安市| 封丘县| 神农架林区| 同德县| 阳原县| 寿阳县| 大新县| 额尔古纳市| 天气| 札达县| 阿克苏市| 隆化县| 宁陵县| 紫阳县|