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

有没有安全一点的网站百度渠道开户哪里找

有没有安全一点的网站,百度渠道开户哪里找,dede网站 地图什么做,哪个做网站的公司好同步和异步的关键区别:同步方法会阻塞线程,而异步方法在 await 时释放线程,让它可以处理其他任务。 await 操作符的作用:当遇到 await 时,当前方法会暂停,线程返回线程池,等待任务完成后再继续…

同步和异步的关键区别:同步方法会阻塞线程,而异步方法在 await 时释放线程,让它可以处理其他任务。

await 操作符的作用:当遇到 await 时,当前方法会暂停,线程返回线程池,等待任务完成后再继续执行。

异步方法不会增快程序处理的速度,只会提高处理程序的数量。

异步方法通常用于那些耗时较长的操作,避免阻塞主线程,提高系统响应速度。


ERP 中适合用异步方法的场景

  • 耗时操作:如批量数据导入 / 导出、复杂报表生成、大数据分析(如销售趋势预测)。
  • 非即时性需求:如夜间自动备份数据、定期发送供应商对账邮件、批量更新商品库存。
  • 高并发场景:当多个用户同时触发耗时操作时,异步方法可避免系统因压力过大而崩溃。

 这些操作如果用同步方法,用户可能需要长时间等待,影响体验。而异步的话,可以让用户继续操作其他功能,后台处理这些任务。

异步方法的好处:提高用户体验,系统资源利用率更高,不会因为一个耗时操作影响整个系统的性能。

异步的实现方式:使用队列、回调函数或者消息机制。


在 ERP 系统中,即使需要等待操作结果,也可能选择异步方法而非同步方法,主要基于以下原因:

1. 避免线程阻塞,提升系统吞吐量

2. 改善用户体验,等待期间系统保持响应

3. 与其他异步组件集成

4. 资源管理更灵活

  • 同步方法:长时间占用线程资源,可能导致资源浪费。
  • 异步方法:可结合超时控制、取消令牌(CancellationToken)等机制,更精细地管理资源。

 


异步方法(优化做法)
  • 操作流程

    1. 会计点击 “生成 6 月财务总览报表” 按钮后,系统立即返回提示:“报表正在生成中,您可以继续其他操作。”
    2. 后台异步处理
      • 系统将报表生成任务放入 “任务队列”,并启动独立的线程或进程处理数据查询和计算。
      • 此时,用户可以继续在 ERP 中处理采购订单、审核报销单等其他任务,界面操作完全不受影响。
    3. 当报表生成完成后,系统通过弹窗、短信或邮件通知会计:“6 月财务报表已生成,可随时查看。”
  • 优势

    • 用户体验提升:无需等待耗时任务完成,可并行处理多项工作。
    • 系统效率更高:资源不会被单一任务阻塞,多个任务可同时推进(如一边生成报表,一边处理订单)。


 

Task.Delay 是一个异步方法,它会让当前的执行流程暂停指定的时间,同时不会阻塞线程。await Task.Delay(5000) 会让程序暂停 5 秒钟,在这期间,线程可以去处理其他任务,而不是一直处于阻塞状态。

  • 当代码执行到 await Task.Delay(5000) 时:
    1. 暂停当前方法:方法执行流在此处暂停,但不阻塞线程
    2. 线程返回线程池:当前线程(可能来自线程池)被释放,可用于处理其他任务。
    3. 后台调度等待Task.Delay 会注册一个定时器,5 秒后通知系统继续执行后续代码。
  • 等待完成后,系统从线程池获取一个可用线程,继续执行 await 后的代码。

设计目的:避免无效检查和资源浪费

  • 场景合理性:账套恢复(如数据库还原、服务重启)属于耗时操作,不可能瞬间完成。直接检查状态会得到 “未开始” 或 “进行中” 的结果,导致无效判断。
  • 性能优化:通过定时等待(而非高频循环),减少对数据库或服务的无效查询,降低资源消耗。
  • 兼容性考虑:远程服务(如 WCF、API)可能存在响应延迟,等待时间为操作预留了执行窗口。

使用回调函数替代轮询

场景:账套恢复完成后自动触发后续操作,无需手动检查状态。
实现方式
  • 步骤 1:定义回调委托。
  • 步骤 2:在异步方法中注册回调。
  • 步骤 3:状态变化时(如恢复成功)触发回调。
// 定义回调委托
public delegate void RecoveryStatusChangedHandler(string packageNo, int status);public class PresentiveAccountSetMaintainer
{// 事件:状态变化时触发public event RecoveryStatusChangedHandler OnRecoveryStatusChanged;public async Task StartRecoveryAsync(int reservedAsId, int adminUserSn, string packageNo){using (var client = AccServiceFactory.GetErpBackupEngineAdapter(AppSettings.ScmType)){// 启动恢复操作client.RecoveryErpProxy(reservedAsId, adminUserSn, true, packageNo);// 异步等待恢复完成await MonitorRecoveryStatusAsync(packageNo, TimeSpan.FromSeconds(30));}}private async Task MonitorRecoveryStatusAsync(string packageNo, TimeSpan timeout){var startTime = DateTime.Now;while (DateTime.Now - startTime < timeout){var status = CheckRecoveryStatus(packageNo);// 触发状态变化事件OnRecoveryStatusChanged?.Invoke(packageNo, status);// 如果恢复成功,退出循环if (status == 2){return;}// 如果正在恢复,等待一段时间后继续检查if (status == 3){await Task.Delay(5000);continue;}// 如果恢复失败,抛出异常if (status == 1){throw new Exception($"账套恢复失败,包编号:{packageNo}");}}// 超时处理throw new TimeoutException($"账套恢复超时,包编号:{packageNo}");}
}
var maintainer = new PresentiveAccountSetMaintainer();// 注册回调
maintainer.OnRecoveryStatusChanged += (packageNo, status) =>
{switch (status){case 2: // 恢复成功Console.WriteLine($"账套 {packageNo} 恢复成功!");// 自动触发后续操作(如数据校验)ValidateAccountData(packageNo);break;case 3: // 正在恢复Console.WriteLine($"账套 {packageNo} 正在恢复中...");break;case 1: // 恢复失败Console.WriteLine($"账套 {packageNo} 恢复失败!");break;}
};// 启动恢复
await maintainer.StartRecoveryAsync(reservedAsId, adminUserSn, packageNo);

http://www.cadmedia.cn/news/13203.html

相关文章:

  • 建站平台 在线提交表格功能江阴网站制作公司
  • 公司电商网站开发前端优化网站
  • 西安推荐企业网站制作平台爱站工具seo综合查询
  • 制作高端网站效果怎么样产品推广宣传方案
  • 安徽省建设厅网站个人怎么注册所有关键词
  • 用自己服务器做网站网站都有哪些
  • 做网站自己装服务器企业查询免费
  • 怎么自己做网站模板上海百度推广官网
  • 平台网站建设ppt模板下载爱站网官网
  • 银川市住房和城乡建设厅网站seo网络营销外包
  • ui设计怎么收费重庆seo整站优化效果
  • 广州建设h5网站淘宝关键词搜索量查询工具
  • 什么事网站建设做网络推广有前途吗
  • 广安商城网站建设aso榜单优化
  • 数码庄园的网站建设公司郑州厉害的seo顾问公司
  • 网站智能云刷关键词排名系统
  • 做二手车有哪些网站有哪些手续费app线下推广怎么做
  • 亚马逊网网站建设规划报告淄博seo推广
  • 开发高端网站建设网络销售都是诈骗公司吗
  • discuz是什么东西湖南好搜公司seo
  • 宁国网站设计公司百度竞价关键词出价技巧
  • 832贫困地区农副产品网络销售平台前端seo是什么意思
  • 360网站推广官网硅钙钾镁肥产品营销策划
  • 一起来做网站磁力猫torrent kitty
  • 中国嘉兴门户网站网站建设价格
  • 做课件用这15大网站网页设计学生作业模板
  • 四川省和城乡建设厅网站首页无排名优化
  • 如何用css做网站百度seo效果怎么样
  • 大连网站制作团队南京网站设计
  • 个人网站建设 免费武汉外包seo公司