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

C#的委托

方法一

private void button1_Click(object sender, EventArgs e)
{// 启动后台线程  Thread backgroundThread = new Thread(new ThreadStart(DoWork));backgroundThread.Start();
}private void DoWork()
{// 模拟后台工作  Thread.Sleep(2000); // 等待2秒以模拟工作  // 更新UI(需要在UI线程上执行)  UpdateTextBox("后台工作已完成!");
}private void UpdateTextBox(string text)
{// 检查是否需要在UI线程上调用  if (textBox1.InvokeRequired){// 使用Invoke方法将更新操作封送到UI线程(同步)  // 也可以使用BeginInvoke进行异步调用  textBox1.Invoke(new Action<string>(UpdateTextBox), text);}else{// 直接更新UI元素(已在UI线程上)  textBox1.Text = text;}
}

方法二

// 假设这是在非UI线程中  
this.Invoke(new Action(() =>  
{  // 这段代码将在UI线程上执行  this.label1.Text = "Updated from non-UI thread";  
}));

方法三
无参数、无返回值的委托(例如Action):

Action greet = () => Console.WriteLine("Hello, world!");  
greet(); // 输出: Hello, world!

有参数、无返回值的委托(例如Action<T>):

Action<string> printMessage = message => Console.WriteLine(message);  
printMessage("Hello, lambda!"); // 输出: Hello, lambda!

有参数、有返回值的委托(例如Func<T, TResult>):

Func<int, int> square = x => x * x;  
int result = square(5); // result 是 25

带有多个参数的lambda表达式:

Func<int, int, int> add = (a, b) => a + b;  
int sum = add(3, 4); // sum 是 7

相关文章:

C#的委托

方法一 private void button1_Click(object sender, EventArgs e) {// 启动后台线程 Thread backgroundThread new Thread(new ThreadStart(DoWork));backgroundThread.Start(); }private void DoWork() {// 模拟后台工作 Thread.Sleep(2000); // 等待2秒以模拟工作 // 更…...

软考(网工)——局域网和城域网

文章目录 &#x1f550;局域网基础1️⃣局域网和城域网体系架构 IEEE&#xff08;负责链路层&#xff09;2️⃣局域网拓扑结构 &#x1f551;CSMA/CD1️⃣CSMA/CD2️⃣CSMA/CD三种监听算法3️⃣冲突检测原理 &#x1f552;二进制指数退避算法1️⃣ 二进制指数退避算法 &#x1…...

MySQL 9从入门到性能优化-通用查询日志

【图书推荐】《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》-CSDN博客 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…...

解码专业术语——应用系统开发项目中的专业词汇解读

文章目录 引言站点设置管理具体要求包括&#xff1a; Footer管理基于URL的权限控制利用数据连接池优化数据库操作什么是数据连接池&#xff1f;优化的优势 利用反射改造后端代码&#xff0c;AJAX反射的作用及其在后端代码中的应用AJAX 实现前后端无刷新交互 引言 创新实践项目二…...

高级java每日一道面试题-2024年10月18日-JVM篇-说下你对G1垃圾收集器的理解?

如果有遗漏,评论区告诉我进行补充 面试官: 说下你对G1垃圾收集器的理解? 我回答: 在Java高级面试中&#xff0c;G1垃圾收集器是一个经常被提及的话题。以下是对G1垃圾收集器的详细解析&#xff1a; G1垃圾收集器的概述 G1&#xff08;Garbage-First&#xff09;垃圾收集器…...

2024系统架构师---湖仓一体架构论文知识点

湖仓一体架构深度解析&#xff1a;构建企业级数据管理与分析的新基石 在当今数据驱动的时代&#xff0c;企业对于数据的管理与分析需求日益复杂。传统的数据仓库与数据湖架构虽各有优势&#xff0c;但单独使用时往往难以满足企业的全面需求。湖仓一体&#xff08;Lakehouse&am…...

Unity性能优化

前言 当游戏开发使用传统的OPP&#xff08;面向对象编程&#xff09;面对大量的Game object时FPS会显著降低&#xff0c;而使用Dots&#xff08;面向数据编程&#xff09;性能依旧很好 计算机内存基础 CPU自身有三级高速缓存&#xff0c;L1,L2,L3,其中CPU访问&#xff08;L1…...

MyHdfs代码分享

关于hdfs协议层相关的的解析已经比较全面&#xff0c;但是大多的分析停留在理论层面。为此笔者通过对hadoop源码的整理&#xff0c;完成了myhdfs项目。此项目有个特点是不依赖于任何hadoop的maven包&#xff0c;但却可以作为原生的hadoop客户端的server。项目暂时已经完成了rpc…...

Java网络编程-简单的API调用

Get请求 - 无参数 安装依赖库 首先需要安装一个库&#xff1a; Okhttp3&#xff0c;这是一个非常流行的 HTTP 库&#xff0c;可以简单、快速的实现 HTTP 调用。 安装 Okhttp3 的方式是在 pom.xml 文件中增加依赖&#xff1a; <!-- https://mvnrepository.com/artifact/c…...

论文笔记(五十)Segmentation-driven 6D Object Pose Estimation

Segmentation-driven 6D Object Pose Estimation 文章概括摘要1. 引言2. 相关工作3. 方法3.1 网络架构3.2 分割流3.3 回归流3.4 推理策略 4. 实验4.1 评估 Occluded-LINEMOD4.1.1 与最先进技术的比较4.1.2 不同融合策略的比较4.1.3 与人体姿态方法的比较 4.2 在YCB-Video上的评…...

微服务的一些基本概念

目录 1 概述1.1 微服务架构的特征1.2 微服务架构示例 2 微服务与单体式架构2.1 什么是单体式架构&#xff1f;2.2 单体式架构的优点2.3 单体式架构的缺点 3 什么是微服务&#xff1f;3.1 微服务的优点3.2 微服务的缺点 4 如何构建微服务4.1 从单体式开始4.2 以正确的方式组织团…...

el-table修改指定列字体颜色 ,覆盖划过行的高亮显示文字颜色

修改指定列字体颜色 ,覆盖划过行的高亮显示文字颜色 代码如下&#xff1a; <div class"c1"><el-table:data"tableData"striperow-class-name"custom-table-row"style"width:100%"cell-mouse-enter"lightFn"cell-…...

java高频面试题汇总

Java 基础 Java 中的序列化和反序列化是什么&#xff1f; 序列化是将 Java 对象转换为字节流的过程&#xff0c;以便可以将其存储在文件中或通过网络进行传输。反序列化则是将字节流恢复为 Java 对象的过程。通过实现 Serializable 接口&#xff0c;Java 对象可以支持序列化。…...

Docker安装ocserv教程(效果极佳)

本章教程,介绍如何在Debain系统上安装ocserv。安装方式是使用Docker方式部署。 一、安装Docker curl -sSL https://file.ewbang.com/docker/debian/install_docker.sh -o install_docker.sh && bash install_docker.sh二、拉取镜像 docker pull tommylau/ocserv...

【数据结构与算法】第3课—数据结构之单链表

文章目录 1. 什么是链表2. 单链表2.1 单链表的初始化和打印2.2 单链表的尾插和头插2.3 单链表的尾删和头删2.4 单链表查找节点2.5 单链表在指定位置之前/之后插入数据2.6 单链表删除节点和删除pos之后的节点2.7 销毁链表 3. 单链表和顺序表对比 1. 什么是链表 链表是在逻辑结构…...

linux—基础命令及相关知识

1.0Linux的哲学思想&#xff08;优势&#xff09; 1、一切都是一个文件&#xff0c;一切硬件设备包括硬件接口都可以以文件形式显示 2、系统小型&#xff0c;轻量级&#xff0c;300个包&#xff08;不装桌面的情况下&#xff09; 3、避免令人困惑的用户界面&#xff08;图形…...

Spring Boot 实现 WebSocket(注解方式)

本文介绍如何使用 Spring Boot 的注解方式实现一个简单的 WebSocket 服务&#xff0c;支持客户端与服务器之间进行实时通信。 1. 引入依赖 在 pom.xml 文件中添加 WebSocket 相关依赖。 <dependencies><!-- Spring Boot WebSocket 支持 --><dependency>&l…...

windows下Qt的安装方法

Qt Creator是个人非常喜欢的一款开发工具&#xff0c;喜欢用其来开发C和CPC平台项目&#xff0c;当然也可以用其来开发Android和Auto平台项目&#xff0c;但其现在采用离线安装&#xff0c;限于网络问题&#xff0c;安装速度非常慢。 现在介绍一种可以完成快速的安装方法。 下…...

嵌入式面试题 ARM常见面试题

一.ARM内核分为哪几类?他们之间有什么区别? ARM内核主要分为三类,Cortex-A,Cortex-R,Cortex-M三种,A代表Applications,向用户提供全方位解决方案,主要用于复制的应用场合,比如智能手机、移动计算平台,数字电视、机顶盒、打印机或服务器等。R代表Real-Time Embedded,…...

分布式调度器--Spring Task 的使用

目录 1、启动类&#xff08;App.java&#xff09;上加EnableScheduling注解&#xff1a; 开启基于注解的任务调度器 2、同步定时任务 3、多线程&#xff08;异步&#xff09;定时任务 3.1 配置线程池 3.2 开启异步支持 3.3 定义异步方法 4、Api说明 4.1 fixedDelay 4.…...

从拒稿到录用:我的TOMM投稿实战复盘与经验分享

1. 从TMM拒稿到TOMM录用的心路历程 第一次收到TMM的拒稿邮件时&#xff0c;我正在实验室熬夜改代码。邮件弹出来的那一刻&#xff0c;整个人就像被泼了一盆冷水。那篇论文已经经历了三轮大修&#xff0c;每次都是几十条审稿意见&#xff0c;我们团队前前后后修改了上百个细节。…...

RouterOS网桥VLAN实战:从零构建安全隔离的二层虚拟网络

1. VLAN基础与RouterOS网桥概述 刚接触网络管理的朋友可能经常听到"VLAN"这个词&#xff0c;但总觉得它神秘莫测。其实VLAN就像给一栋办公楼划分不同部门&#xff1a;财务部、研发部、市场部各自有独立的办公区域&#xff0c;既保证了隐私安全&#xff0c;又避免了相…...

3步告别桌面混乱:开源免费的NoFences桌面分区管理工具

3步告别桌面混乱&#xff1a;开源免费的NoFences桌面分区管理工具 【免费下载链接】NoFences &#x1f6a7; Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 你是否每天都要在杂乱无章的桌面图标中浪费宝贵时间&#x…...

NHSE完全指南:3步掌握动物森友会存档编辑器的核心功能

NHSE完全指南&#xff1a;3步掌握动物森友会存档编辑器的核心功能 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE NHSE&#xff08;Animal Crossing: New Horizons Save Editor&#xff09;是一款…...

DeepSeek-OCR-2效果展示:OCR结果直接生成可编辑Word/PDF双格式

DeepSeek-OCR-2效果展示&#xff1a;OCR结果直接生成可编辑Word/PDF双格式 本文展示DeepSeek-OCR-2模型的强大OCR能力&#xff0c;重点演示如何将扫描文档直接转换为可编辑的Word和PDF格式&#xff0c;让文档数字化变得简单高效。 1. 核心能力概览 DeepSeek-OCR-2是2026年1月发…...

AzurLaneAutoScript:碧蓝航线终极自动化助手完全指南

AzurLaneAutoScript&#xff1a;碧蓝航线终极自动化助手完全指南 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研&#xff0c;全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 在碧蓝航线…...

告别编码等待:LosslessCut的无损视频处理革命

告别编码等待&#xff1a;LosslessCut的无损视频处理革命 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 副标题&#xff1a;掌握零质量损失剪辑、多轨道精细控制与批…...

ncmdumpGUI:网易云音乐加密文件转换的完整解决方案

ncmdumpGUI&#xff1a;网易云音乐加密文件转换的完整解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 一、初识ncmdumpGUI&#xff1a;解密音乐文件的…...

编程技巧:模式切换程序框架

目录 1.模式切换程序框架 2.实现思路 3.模式切换程序框架 4.模式切换每个模式模块化流程 5.代码 Mode1.c Mode2.c Mode3.c Global.c main.c 1.模式切换程序框架 Init&#xff1a;进入模式前&#xff0c;执行一遍&#xff0c;用于初始化工作 Loop&#xff1a;执行完In…...

开源工具优化Cursor API调用:突破限制提升开发效率的完整方案

开源工具优化Cursor API调用&#xff1a;突破限制提升开发效率的完整方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached y…...