国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C# WinForm 跨線程訪問控件

這篇具有很好參考價值的文章主要介紹了C# WinForm 跨線程訪問控件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

寫在前面

在WinForm開發(fā)中,經(jīng)常會碰到主線程代碼運(yùn)行過程中需要刷新窗體控件的情況,如果直接在其他線程中去操作窗體控件,這時會拋出線程間操作無效的異常信息,因?yàn)榇绑w控件是由主線程創(chuàng)建的,C#強(qiáng)制要求代碼必須是線程安全的,所以不允許跨線程訪問。需要使用控件的Invoke方法,通過擁有控件的基礎(chǔ)窗口句柄的線程來執(zhí)行。

異常信息如下:

C# WinForm 跨線程訪問控件,C#,c#,開發(fā)語言

改成如下代碼就可以了?

代碼實(shí)現(xiàn)

    Action<int> setText = (i) => { this.lblMessage.Text = $"第 {i} 次執(zhí)行";  };
    var task = Task.Factory.StartNew(() => {

        for (int i = 0; i < 100; i++)
        {
            Thread.Sleep(1000);
            lblMessage.Invoke(setText, i);
            //lblMessage.Text = $"第 {i} 次執(zhí)行";
        }                
    });

執(zhí)行結(jié)果:

C# WinForm 跨線程訪問控件,C#,c#,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-758211.html

到了這里,關(guān)于C# WinForm 跨線程訪問控件的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Visual Studio C# WinForm開發(fā)入門(5):TabControl 控件使用

    Visual Studio C# WinForm開發(fā)入門(5):TabControl 控件使用

    TabContrl選項(xiàng)卡控件可創(chuàng)建標(biāo)簽化窗口,在實(shí)際 編程中經(jīng)常用到,該控件的作用是將相關(guān)的組件組合到一系列選項(xiàng)卡頁面上。 比如下面的例子,在tabPage1頁面和tabPage2頁面各放了2個checkBox控件,通過點(diǎn)擊不同page即可切換: 1、添加和刪除TabControl控件中的選項(xiàng)卡 有兩種方法: 第

    2024年02月07日
    瀏覽(32)
  • Visual Studio C# WinForm開發(fā)入門(6):TreeView 控件使用

    Visual Studio C# WinForm開發(fā)入門(6):TreeView 控件使用

    TreeView控件用樹顯示節(jié)點(diǎn)層次。 例如:頂級目錄是根(C:),C盤下的每個子目錄都是子節(jié)點(diǎn),而每個子目錄又都有自己的子節(jié)點(diǎn) TreeView屬性和方法: 屬性 說明 CheckBoxes 表示節(jié)點(diǎn)旁邊是否出現(xiàn)復(fù)選框 ImageList 指定一個包含節(jié)點(diǎn)圖標(biāo)的ImageList對象。ImageList對象是一個包含Image對象的

    2024年02月02日
    瀏覽(47)
  • C#中錯誤:線程間操作無效,從不是創(chuàng)建控件的線程訪問它。

    一、原因分析 跨線程調(diào)用控件會出現(xiàn)這個錯誤的原因是因?yàn)椋?NET禁止了跨線程調(diào)用控件, 否則誰都可以操作控件,最后可能造成錯誤。 所以不是在創(chuàng)建控件所在的線程內(nèi)調(diào)用就會發(fā)生這樣的錯誤。 二、解決辦法 方法1:設(shè)置CheckForIllegalCrossThreadCalls =false 是能去掉這個檢查的

    2024年02月15日
    瀏覽(25)
  • C#線程間操作無效:從不是創(chuàng)建控件“textbox1”的線程訪問它

    C#線程間操作無效:從不是創(chuàng)建控件“textbox1”的線程訪問它

    在C#的多線程訪問中,在線程間的相互訪問時因?yàn)榫€程安全問題有訪問限制,在創(chuàng)建一般線程時,對于界面元素訪問時這樣的問題比較常見。 比如,創(chuàng)建一個form1,上面放置一個textbox控件,創(chuàng)建一個線程去訪問textbox,界面如下: 按鈕buuton1的代碼: 就是簡單地創(chuàng)建一個線程,

    2023年04月09日
    瀏覽(20)
  • C# 解決 System.InvalidOperationException:“線程間操作無效: 從不是創(chuàng)建控件“...”的線程訪問它。”

    方法1(不推薦):禁用跨線程檢查 使用 Control.CheckForIllegalCrossThreadCalls = false; 例如: 方法2:使用委托 使用 Control 基類的 Invoke 或 BeginInvoke 方法,來執(zhí)行禁止跨線程的代碼。 例如: 或: 使用參數(shù)進(jìn)行傳遞: 不使用 lambda 表達(dá)式的寫法: 使用 BeginInvoke 方法的情形,與使用

    2024年02月12日
    瀏覽(84)
  • C#針對VS線程間操作提示:程間操作無效: 從不是創(chuàng)建控件“”的線程訪問它的幾種解決方法

    C#針對VS線程間操作提示:程間操作無效: 從不是創(chuàng)建控件“”的線程訪問它的幾種解決方法

    轉(zhuǎn)載請標(biāo)明出處:Python Excellent的博客 此為最基礎(chǔ)方法 (入門級) 運(yùn)行效果如圖所示 * 先在按鈕事件中創(chuàng)建一個Test1()線程 * 在測試1中有兩種方法可以訪問窗體線程(首推薦) public SynchronizationContext UiContext //第一步全局聲明 UiContext = SynchronizationContext.Current; //第二部在public For

    2024年02月08日
    瀏覽(23)
  • 使用DevExpress22.X(Patch)控件庫在VisualStudio2022使用C#進(jìn)行Winform、WPF應(yīng)用的開發(fā),看這一篇就夠了!

    使用DevExpress22.X(Patch)控件庫在VisualStudio2022使用C#進(jìn)行Winform、WPF應(yīng)用的開發(fā),看這一篇就夠了!

    ????????寫在開頭,Dev Express是個十分強(qiáng)大的控件庫(下文簡稱Dev),但礙于其高昂的使用費(fèi)用,“出于學(xué)習(xí)目的”,我們一般使用的都是Patch版本(在版權(quán)意識日趨加強(qiáng)的當(dāng)下,不要提那兩個字,現(xiàn)在加上那些字,百度都搜不出內(nèi)容)。 ? ? ? ? 最重要的 Patch資源 (包括

    2024年02月09日
    瀏覽(85)
  • C# WinForm —— 05 控件簡介

    簡介 窗體中用于輸入或操作的對象,有自己的屬性、方法、事件 特征 可視化,與用戶進(jìn)行交互,屬性,方法,事件,可供開發(fā)人員使用,可發(fā)布和重用 控件開發(fā) 復(fù)合控件:各種控件組合起來,形成一個新的控件 擴(kuò)展控件:現(xiàn)有控件上派生出一個新的控件,為原有框架增加

    2024年04月12日
    瀏覽(21)
  • C# WinForm —— 06 常用控件

    公共控件 功能 Label 標(biāo)簽,UI上的提示性文字 TextBox 文本框 RadioButton 單選按鈕 CheckBox 復(fù)選框 ComboBox 下拉框,只能選擇一個選項(xiàng) CheckedListBox 帶復(fù)選框的列表項(xiàng),可以選擇多個選項(xiàng)的下拉菜單 DateTimePicker 日期時間選擇控件 ListBox 列表框 ListView 以五種不同視圖顯示項(xiàng)的集合 Mask

    2024年04月10日
    瀏覽(18)
  • C# Winform Label 控件

    C# Winform Label 控件

    目錄 一、概述 二、基本用法 1.控件內(nèi)容顯示 2.控件的外觀 3.自定義控件的大小 4.控件的內(nèi)邊距? 5.設(shè)置文本的固定位置 6.控件的事件 結(jié)束 Label 控件是 winform 開發(fā)中最常用的一個控件,一般用做顯示文本,也有時用做打開鏈接等操作。 新建一個 winform 項(xiàng)目,點(diǎn)擊 form1 界面,

    2024年02月09日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包