Winfrom、多线程、委托,一个控件不同线程控制

本文介绍了在C# Winform项目中,由于控件操作必须在UI线程进行,因此当实时数据读取线程试图更新控件时遇到问题。通过理解线程同步原理,对代码进行调整,确保在正确的线程中更新UI。
摘要由CSDN通过智能技术生成

项目场景:

需要往winfrom的一个多行文本实时累加读取到的内容。


问题描述:

由于不在一个线程中,一个是winfrom的线程,另一个是实时读取数据的线程,所以不论实时读取到的数据怎么往Context.AppendTest()都没有用,几经周折想了一下原理对代码做了如下调整:

@winfrom
namespace XXXX.XXXXX
{
    //用来传将读到的数据传输到winfrom(全局)
    public delegate void SetDataDelegate(List<string> val);

    public partial class From1 : From
    {        
        public delegate void SetListViewCallBack(List<string> data);
        //构造方法
        public From1 ()
        {
            InitializeComponent();
        }

        private void Tool_Load(object sender,EventArgs e)
        {
            //调用修改控件中的值的方法SetVal
            SetDataDelegate setDataDelegate = new SetDataDelegate(SetVal);
            //取数据.............
        }
        
        private void SetVal(List<string> val)
        {
            //修改控件Context
       
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值