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

【35】C#实战篇——StopRecordingTimer_Tick事件函数中,解绑函数自己,那么该函数会立即结束吗?还会继续执行该函数中剩余部分吗?

文章目录

代码如下,一旦进入 if (elapsedTime.TotalMilliseconds >= recordingDuration) 时,第一时间停止 StopRecordingTimer_Tick,然后再执行 StopRecordingAndJudgeResultAsync

以防止在 StopRecordingAndJudgeResultAsync 执行期间 StopRecordingTimer_Tick 被多次触发,多次执行if中的内容。

那么,执行stopRecordingTimer.Elapsed -= StopRecordingTimer_Tick; 后,
函数StopRecordingTimer_Tick会立即结束吗 ?
还会继续执行下面的StopRecordingAndJudgeResultAsync函数吗?

 private async void StopRecordingTimer_Tick(object sender, EventArgs e){var elapsedTime = DateTime.Now - recordingStartTime;if (elapsedTime.TotalMilliseconds >= recordingDuration) // 达到设定时长后停止录音{// 防止重复触发if (bStopRecord) return;bStopRecord = true;  // 标志位设置为停止// 停止并释放计时器if (stopRecordingTimer != null){stopRecordingTimer.Stop();  // 停止计时器stopRecordingTimer.Elapsed -= StopRecordingTimer_Tick;  // 解绑事件处理程序stopRecordingTimer.Dispose();  // 释放计时器}// 停止录音和处理结果---使用异步方法,使得定时器不会干扰这些操作,确保在录音停止时不会重复调用相关函数。await StopRecordingAndJudgeResultAsync(); // 异步执行录音停止与结果判断   }}

这并不会影响到当前方法中后续的代码执行。

  • 解绑了事件并不意味着当前的 StopRecordingTimer_Tick 方法就会提前终止,或者后面的代码不被执行。它只是移除了事件和回调的绑定关系,防止之后定时器再触发该方法
  • StopRecordingTimer_Tick 方法 已经被触发,即使你解绑了事件,它仍然会继续执行方法内的其余代码(包括异步调用)。
  • 解绑事件的操作 仅影响未来 定时器触发时是否执行 StopRecordingTimer_Tick 方法,但不影响当前方法的正常执行。
http://www.dtcms.com/a/323633.html

相关文章:

  • windows、linux应急响应入侵排查
  • Oracle数据库重启后打开异常状态的检查步骤
  • 模拟人脑处理文本——从分句到分词,从段落到时间线叙事
  • MySQL时间类型
  • windows上LM-Studio下载安装教程
  • 谷歌搜索 sg_ss 逆向分析
  • 自闭和标签形式(self-closing tags)和标准标签形式
  • [概率 DP]808. 分汤
  • C++入门学习3
  • 开漏和推挽模式的区别
  • QT第一讲- Qt初探
  • XSS攻击演示
  • 常用信号深度解析(SIGINT、SIGPIPE、SIGALRM、SIGTERM等)
  • 101-基于Python的个性化音乐推荐系统
  • 码上爬第三题【协程+浏览器调试检测】
  • 本文章分享一个本地录音和实时传输录音给app的功能(杰理)
  • [GPU]什么是“硬件TL”在UnityURP中的体现
  • 疏老师-python训练营-Day40训练和测试的规范写法
  • 并发编程基础:继承Thread vs 实现Runnable - 深入解析与最佳实践
  • Tob大客户销售面试经验
  • 华为交换机进阶功能和场景化配置
  • 最长回文子串(马拉车/Manacher‘s )算法
  • P1053 [NOIP 2005 提高组] 篝火晚会
  • 【C/C++】详解内存对齐问题,C语言内存对齐整理
  • vulhub-Beelzebub靶机
  • 计算网络相关知识
  • 第15届蓝桥杯Scratch图形化省赛初级组2024年8月24日真题
  • 模型微调与RAG在问答系统中的对比分析
  • [激光原理与应用-205]:光学器件 - LD与DFB的比较
  • leetcode 11. 盛最多水的容器 -java