[MVC] - Asynchronous操作

最近在项目里遇到个问题,是在MVC的项目里处理异步操作的,操作流程是这样的:

1.从MVC的一个controller调用一个异步方法:

public ActionResult CreateOrUpdateBillStockIn(BillStockInInput input)
        {
            _billService.CreateOrUpdateBillStockIn(input);
            return Redirect("StockIn");
        }

这里是被调用的异步方法,在该方法里连续调用了其他几个异步方法:

public async Task CreateOrUpdateBillStockIn(BillStockInInput input)
        {
           await ...;      await ...;
        }

出现的问题:

有时候在CreateOrUpdateBillStockIn方法里的操作没有完成。

原因分析:

调用CreateOrUpdateBillStockIn的方法由于不是异步的,所以不会等待异步方法跑完,所以异步方法有被半途kill的风险。

解决思路及结果:

把调用CreateOrUpdateBillStockIn方法的方法也写成异步的,问题解决了。

时间: 2024-10-05 04:04:51

[MVC] - Asynchronous操作的相关文章

MVC删除操作前confirm提示

本段时间,忙于公司的ERP问题,博客也没有怎样更新了.昨晚于家中学习了MVC时,对删除记录前,让用户有后悔选择.即是说,能先给用户一个提示,然后再让用户决定是否删除记录.以前练习MVC,对删除记录,均是直接删除.如:<MVC实现删除数据库记录>http://www.cnblogs.com/insus/p/3368042.html 或<MVC 5显示.创建.编辑.删除等功能实练>http://www.cnblogs.com/insus/p/3372916.html 实现方法有二,第一

asp.net mvc后台操作之读写xml控制首页动态页面开关显示

一.背景 在asp.net mvc项目里,用户需要开拓几个活动版面,并以侧栏的方式呈现在首页右侧,几个活动时间不一致,为避免浏览者在活动未开放之时进入未开放的服务页面.因此不仅需要在活动代码中加入限制功能,也需要在前台取消不合时宜的页面的展示.后台效果图: 二.问题分析 要想控制页面开关显示,就得有存储开关信息的介质,将在后台产生的操作记录下来,并在浏览者加载首页之时能读取操作记录并达到控制页面开关的目的.因此,考虑两种介质储存开关记录信息,一是用数据库mysql,二是用xml.考虑到这对数据库

MVC Controller操作 CRUD

2011-12-20 22:40 1824人阅读 评论(0) 收藏 举报 分类: asp.net MVC(6) 版权声明:本文为博主原创文章,未经博主允许不得转载. Controller操作 主要简单备忘增.删.查.改的Controller一般操作方法,操作对象为Students实体.context为上下文连接 students对象包括name,age,sex信息,操作页面都是在MVC3中使用强类型.Razor模版建立的. 1.定义查询Index [csharp] view plain copy

c#-MVC基础操作-数据的展示及增删改

一.数据展示 1.View代码: <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> <%@ Import Namespace="MvcApplication1.Models" %> <!DOCTYPE html> <html> <head runat="server">

MVC 记录操作日志与过滤特殊字符

最近进行的MVC系统需要用到记录操作日志和过滤特殊字符的功能,如果每个action中都调用记录日志的方法就太麻烦了,所以根据需要结合mvc的过滤机制 写了个特殊字符验证与记录操作日志的公用类: 1 public class CustomFilterAttribute : ActionFilterAttribute 2 { 3 public CustomFilterAttribute() 4 { 5 IsLog = false; 6 FilterSpecialChar = true; 7 } 8

ASP.NET MVC 表格操作

Beginners Guide for Creating GridView in ASP.NET MVC 5 http://www.codeproject.com/Articles/1114208/Beginners-Guide-for-Creating-GridView-in-ASP-NET-M?msg=5291877#xx5291877xx GridView with Server Side Filtering, Sorting and Paging in ASP.NET MVC 5 htt

MVC增加操作日志

在后台管理中,有一些操作是需要增加操作日志的,尤其是对一些比较敏感的金额类的操作,比如商城类的修改商品金额.删除商品.赠送金额等人工的操作.日志中记录着相关操作人的操作信息,这样,出了问题也容易排查. 那么如何高效统一的处理增加这些日志呢?下面,分享一下我的思路及做法. 1.建日志相关表.需要建两个表,一是日志类型表(ActivityLogType),二是日志表(ActivityLog), 相关的表结构如下: 日志类型表:Id,SystemKeyword,Name,Enable (1 自动投标设

Ext4 MVC CRUD操作

项目目录结构如下: (1)index.html <!DOCTYPE html> <html> <head> <title>用户管理</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel=&q

.Net mvc cookie 操作封装方法

对cookie操作不太熟悉的可以参考一下. 一般来说 cookie是个针对访问者电脑存储数据的东西,可以把一个cookie看作一个表,有表名,可以有很多行,每一行有两个字段,key和value,key唯一,可以通过key找到对应的值 value. 封装方法: #region 设置cookie /// <summary> /// 设置cookie /// </summary> /// <param name="key">键</param>