C# Action

应用场景,项目中需要添加审计日志,在程序中日志采用异步的方式,进行操作,可以防止因为操作日志而影响程序的使用,日志方法,采用异步方式

 public void SaveAsync(AuditLogInfo auditLogInfo, Action callback = null)
        {

            Task.Run(async () =>
            {
                try
                {
                    await Task.Delay(1);
                    var request = new RestRequest(RequestUrl.ADDAUDITLOG, Method.POST);
                    request.AddJsonBody(auditLogInfo);
                    var response = restClient.Post<ResponseResult<AuditLogInfo>>(request);
                    callback?.Invoke();
                }
                catch (Exception ex)
                {
                    _log.Error(ex, $"UploadLogInfo {auditLogInfo}");
                }
            });

        }

下面代码的逻辑是,采用回调函数的方式,执行完Action有数据返回之后,再进行下面的代码

DataManager.Instance.SaveData();

 if (DataManager.Instance.InstallInfo == null || DataManager.Instance.InstallInfo.AppVersion != AppVersion.VERSION_CODE)
                {
                    string computerName = ComputerInfoHelper.GetComputerName();
                    string deviceInfo = ComputerInfoHelper.GetRemovableDeviceID();
                    string systemName = ComputerInfoHelper.GetSystemName();
                    string systemType = ComputerInfoHelper.GetSystemType();
                    string desc = string.Format("计算机名称:{0},盘符信息:{1},系统信息:{2},系统类型:{3}", computerName, deviceInfo, systemName, systemType);
                    _auditingStoreService.SaveAsync(LogLevelEnum.Install, "", "LoadPage", "", desc, () =>
                    {
                        DataManager.Instance.InstallInfo = new InstallInfo()
                        {
                            AppVersion = AppVersion.VERSION_CODE,
                            IsInstall = true,
                            LastUpdateTime = DateTime.Now,
                            MachineId = Guid.NewGuid().ToString()
                        };
                        DataManager.Instance.SaveData();
                    });
                }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值