当前位置: 首页 > web >正文

C# 委托UI控件更新例子,何时需要使用委托

1. 例子1

private void UdpRxCallBackFunc(UdpDataStruct info)
{// 1. 前置检查防止无效调用if (textBoxOutput2.IsDisposed || !textBoxOutput2.IsHandleCreated)return;// 2. 使用正确的委托类型Invoke(new Action(() =>{// 3. 双重检查确保安全if (textBoxOutput2.IsDisposed) return;try{// 4. 安全更新UItextBoxOutput2.Text = csdataUtil.ByteArrayToHexStr(info.buf, 0, info.length);}catch (Exception ex){// 5. 异常处理(可替换为日志记录)Console.WriteLine($"UDP更新失败: {ex.Message}");}}));
}

2. 例子2,安全更新封装方法

public static void SafeUpdate(Control control, Action updateAction)
{if (control.InvokeRequired)control.Invoke(updateAction);elseupdateAction();
}// 使用
SafeUpdate(textBox1, () => 
{textBox1.Text = "Updated safely";textBox1.BackColor = Color.Green;
});

3. 什么情况下使用委托

在这里插入图片描述
在这里插入图片描述

http://www.xdnf.cn/news/12328.html

相关文章:

  • leetcode1519. 子树中标签相同的节点数- medium
  • Python文件读取漏洞深度解析与防护指南
  • P10909 [蓝桥杯 2024 国 B] 立定跳远
  • 《涨停28式》速读笔记
  • 数据分析Agent构建
  • Word文档重新打开后标题自动缩进的解决方法
  • 基于eclipse进行Birt报表开发
  • 亲测解决grad can be implicitly created only for scalar outputs
  • 不同类型的语义相似度损失函数(SentenceTransformerLoss)
  • windows环境Google-sparsehash安装
  • Python语法进阶篇 --- 封装、继承、多态
  • ObservableRecipient与ObservableObject
  • 基于rpc框架Dubbo实现的微服务转发实战
  • Android实现轮播图
  • Vue---vue使用AOS(滚动动画)库
  • 深度学习习题2
  • c++ 基于OpenSSL的EVP接口进行SHA3-512和SM3哈希计算
  • 广州邮科:引领嵌入式通信电源系统创新与发展
  • CMake指令:add_definitions
  • Profinet转CAN网关与西门子PLC的互联互通基础操作流程
  • 二叉树的遍历总结
  • 统信桌面专业版如何使用python开发平台jupyter
  • Kotlin 2.1 一元二次方程(顺序结构版)
  • three.js中使用tween.js的chain实现动画依次执行
  • 第09期_网站搭建_卡密验证 易如意1.71正式版 虚拟主机搭建笔记 软件卡密系统
  • 嵌入式学习 D33:系统编程--网路编程
  • dvwa12——XSS(Stored)
  • 回文数 - 力扣
  • Vue Router的核心实现原理深度解析
  • Python训练营打卡 Day45