双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

委托+线程实现超简单winform实时进度条 欢迎拍砖

xboxeer xboxeer 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
一直搞ASP.NET没多少机会碰一碰多线程 这几天自己鼓捣了个实时更新的winform进度条控件(不是假的那种哦!) 使用者无需知道线程等相关知识 甚至连委托都不怎么需要知道 即可实现一个支持开始 暂停 继续 终止 再次开始的进度条效果
以下是调用方法

private void Start_Click(object sender, EventArgs e)
{
this.myProcessBar1.Task = this.Task;
this.myProcessBar1.Run();//开始工作线程 同时开始监听工作进度
}
//某个耗时操作 参数即当前进度
public void Task(ref float percentage)
{
int i = 0;
while (i < int.MaxValue )
{
i++;
percentage = i / (float)int.MaxValue;
}
}

private void button1_Click(object sender, EventArgs e)
{
this.myProcessBar1.Stop();//暂停进度条 同时也暂停工作线程
}

private void button2_Click(object sender, EventArgs e)
{
this.myProcessBar1.Resume();//继续进度条 同时继续工作线程
}

private void button3_Click(object sender, EventArgs e)
{
this.myProcessBar1.Abort();//终止工作进程
}

private void button4_Click(object sender, EventArgs e)
{
this.myProcessBar1.Run();//这边位重新启动进度条
}

效果图如下

整体思路是用三个线程 即UI线程本身 工作线程 以及监听线程 监听线程实时获取工作线程的执行的情况 并负责更新UI 这里面有一个很大的问题就是如何实时获取工作线程的进度情况 这里就提出一种没有被验证是否可靠的但是现在来说算是可行的方案 即引用类型参数

由于引用类型参数在传值的时候传递的是本身 因此所有针对他的变化都可以被外部获取 但是为了保证该变量的安全 设计的时候将该变量作为控件 的私有字段 并对外开放只读属性 这样就保证了该变量不会被非工作线程所改变
源代码下载链接
...全文

相关推荐

政府科技管理者在推动科技成果转化过程中,如何高效追踪企业技术需求变化?.docx

政府科技管理者在推动科技成果转化过程中,如何高效追踪企业技术需求变化?

BIZKEEN

直流微电网改进下垂控制+二次控制关联参数SOC混合储能(Simulink仿真实现)

内容概要:本文围绕直流微电网中的改进下垂控制与二次控制展开,重点研究了关联直流微电网改进下垂控制+二次控制关联参数SOC混合储能(Simulink仿真实现)储能单元荷电状态(SOC)的混合储能协调控制策略,并通过Simulink平台实现系统建模与仿真验证。文章提出了一种结合改进下垂控制与二次电压补偿的协同控制方法,有效解决了传统下垂控制导致的电压偏差问题,同时通过引入SOC反馈机制,实现了对蓄电池与超级电容等不同类型储能器件的功率合理分配与寿命均衡,提升了系统稳定性与能量利用效率。研究涵盖了控制策略设计、参数整定、系统动态响应分析及多工况仿真验证,展示了在负载突变、电源波动等场景下的良好性能。; 适合人群:具备电力电子、自动控制或新能源系统基础知识,从事微电网、储能系统、分布式能源等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网中下垂控制的基本原理及其电压偏差问题的解决方案;②学习基于SOC的混合储能协调控制策略的设计思路与实现方法;③通过Simulink仿真平台复现并优化控制算法,用于课题研究、项目开发或论文写作。; 阅读建议:建议结合文中提到的Simulink仿真模型与可能提供的参考文献进行实践操作,重点关注控制环路结构设计、PI参数调节及SOC均衡策略的实现细节,通过设置不同工况进行仿真测试,深入理解系统动态特性与控制性能。

优化算法侠_科研

excel python test

excel python test

我从来不玩瑞文

基于数据驱动的Koopman库普曼算子谱分析(Matlab代码实现)

内容概要:本文系统阐述了基于数据驱动的Koopman库普曼算子谱分析方法,并提供了完整的Matlab代码实现。该方法通过构建Koopman算子的有限维近似,将复杂的非线性动力系统转化为高维线性系统进行建模与分析,从而实现对系统动态行为的有效描述。核心内容涵盖观测函数(如RBF、多项式)的设计、动态矩阵的构建与估计、谱分解及模态提取(如Koopman模态、时间尺度)等关键步骤,重点应用于高维非线性随机系统的状态估计、降维建模、主导动态识别与未来趋势预测。文中结合具体算例,验证了该方法在复杂系统分析中的有效性与优越性。; 适合人群:具备线性代数、动力系统理论、信号处理及基本Matlab编程能力,从事控制科学、数据科学、工程力学、气象学或生物系统建模等相关领域的研究生、科研人员与工程师。; 使用场景及目标:① 对难以建立精确物理模型的非线性系统进行数据驱动建模与行为预测;② 提取系统的主导动态模态与振荡频率,用于故障诊断与稳定性分析;③ 实现高维复杂系统的有效降维与可视化;④ 应用于流体力学、气候建模、神经科学、能源系统等领域的动态过程分析与预测任务。; 阅读建议:建议读者结合所提供的Matlab代码进行逐行调试与复现,深入理解算法每一步的数学内涵与实现逻辑,特别关注观测函数的选择、延迟坐标的构造以及奇异值截断对降维效果和模态准确性的影响,同时可进一步学习动态模态分解(DMD)及其变体,以构建更完整的谱分析知识体系。

大龙不吃小鱼干

利用MATLAB对6自由度机械臂进行正向和反向运动学分析。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

海神之光
评论 17
收藏 已收藏
分享
返回顶部
xboxeer
C# 111,129 成员 642,540 内容