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

商城类网站如何众筹重庆森林讲的什么内容

商城类网站如何众筹,重庆森林讲的什么内容,直播网站开发价格,沈阳的网站建设同步和异步的关键区别:同步方法会阻塞线程,而异步方法在 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.tj-hxxt.cn/news/32635.html

相关文章:

  • 邯郸网站设计报价小网站广告投放
  • 网站建设公司的岗位职责自媒体平台app
  • 哪里可以找到免费的网站微商营销
  • 中国做乱的小说网站杭州网站优化
  • 好学校平台网站模板站长素材
  • 那个网站可以做logo社群营销是什么意思
  • 想在网站卖房怎么做如何自己搭建一个网站
  • 站长网站素材网青岛seo服务
  • 帮助传销做网站会不会判刑网站设计费用明细
  • 南京市建设执业资格中心网站网页制作与网站建设实战教程
  • 广州网站设计公司招聘互联网登录的网站名
  • 湖南工商网址免费seo培训
  • 网络营销策划书ppt郑州seo优化顾问阿亮
  • 哪些网站可以用来做百科参考公司网站如何制作设计
  • 淮南北京网站建设seo课程简介
  • 网站别人做的上面有方正字体东莞网站建设优化诊断
  • 跨境电商自建站平台淘宝关键词优化技巧教程
  • 钓鱼网站如何做百度爱采购竞价推广
  • 怎么给网站做php后台关键词快速优化排名软件
  • 网站怎么换空间抖音关键词优化排名靠前
  • 一个做问卷调查的网站网站搜索引擎优化方案
  • 给微商做批发的网站360推广登录入口官网
  • 跨越网站建设科技有限公司编程培训机构加盟哪家好
  • 福州网站改版关键词优化是怎么做的
  • wordpress前端用户插件北京seo
  • 优化seo系统seo营销推广平台
  • 如何建立国际网站宁波网络推广优化方案
  • 网站开发的成本发免费广告电话号码
  • 武汉做网站小程序哪家公司好百度关键词挖掘
  • 天津建设网站首页国内做网站比较好的公司