asp.net c#并行调用service层代码

        public ActionResult Home(AdviserSearchModel model)
        {
            //顾问列表需要的当前城市的下级地区
            var ip = "117.82.196.195";
            var districts = this.districtService.GetDistrictByIp(ip);
            //顾问列表分页数据
            model.OperatorType = AdviserEnum.FurnitureAdviser;
            var result = this.adviserService.GetPagingData(model);

            return Json(result, JsonRequestBehavior.AllowGet);
        }

我的代码一开始是上面这种写法,因为两次调用service代码都比较耗时,后来想到用多线程。也就是.net为我们封装好的Task类。

修改如下:

        public ActionResult Design(AdviserSearchModel model)
        {
            //顾问列表需要的当前城市的下级地区
            var ip = "117.82.196.195";
            var districtsTask = Task.Run(() => {
                return this.districtService.GetDistrictByIp(ip);
            });
            //顾问列表分页数据
            model.OperatorType = AdviserEnum.DesignAdviser;
            var pagingTask = Task.Run(()=> {
                return this.adviserService.GetPagingData(model);
            });

            var districts = districtsTask.Result;
            var result = pagingTask.Result;

            return Json(result, JsonRequestBehavior.AllowGet);
        }

我的电脑是4核的,所以我相信耗时,应该是那个消耗较长的服务的时间。

原文地址:https://www.cnblogs.com/subendong/p/10508914.html

时间: 2024-08-30 15:29:31

asp.net c#并行调用service层代码的相关文章

TimerTask的run()方法里面如何调用service层里面的方法

在java的spring框架中,用Timer和TimerTask来实现定时任务,有时我们要在TimerTask的子类的重写run方法里,调用service层的方法. 但是不管是spring.xml配置的bean还是注解@autoware注入的bean,在执行的时候都会报空指针异常. 这其中主要的问题是TimerTask不是由spring管理的,所以你TimerTask内部的service也无法自动注入,2种解决办法,1.TimerTask交由spring管理:2.通过applicationCon

在Java filter中调用service层方法

在项目中遇到一个问题,在 Filter中注入 Serivce失败,注入的service始终为null.如下所示: 1 public class WeiXinFilter implements Filter{ 2 3 @Autowired 4 private UsersService usersService; 5 6 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

工作中遇到的问题--Hibernate一对多保存简化Service层代码

在创建一方的entity是添加一个增加多方的方法: package com.sim.mfg.data.domain; import java.io.Serializable;import java.util.Date;import java.util.HashMap;import java.util.Map;import java.util.Set; import javax.persistence.CascadeType;import javax.persistence.Column;impo

如何让CI框架支持service层

本文主要介绍了在controller和model中加一个业务层service,由它来负责业务逻辑,封装好的调用接口可以被controller复用,提高了通用的业务逻辑的复用性,设计到具体业务实现会调用Model的接口. 大家知道CodeIgniter框架式MVC分层的,通常大家把业务逻辑写到Controller中,而Model只负责和数据库打交道. 但是随着业务越来越复杂,controller越来越臃肿,举一个简单的例子,比如说用户下订单,这必然会有一系列的操作:更新购物车.添加订单记录.会员添

让CI框架支持service层

大家知道CodeIgniter框架式MVC分层的,通常大家把业务逻辑写到Controller中,而Model只负责和数据库打交道. 但是随着业务越来越复杂,controller越来越臃肿,举一个简单的例子,比如说用户下订单,这必然会有一系列的操作:更新购物车.添加订单记录.会员添加积分等等,且下订单的过程可能在多种场景出现,如果这样的代码放controller中则很臃肿难以复用,如果放model会让持久层和业务层耦合.现在公司的项目就是,很多人将一些业务逻辑写到model中去了,model中又调

(转)淘淘商城系列——导入商品数据到索引库——Service层

http://blog.csdn.net/yerenyuan_pku/article/details/72894187 通过上文的学习,我相信大家已经学会了如何使用Solrj来操作索引库.本文我们将把商品数据导入到索引库中的Service层代码编写完毕! 首先在taotao-search-interface工程中新建一个接口,如下图所示. 可以看到importAllItemToIndex方法的返回值类型是TaotaoResult,当你纠结返回值是什么的时候,你就可以使用TaotaoResult.

高并发下Service层的写法

最近在项目里遇到一个坑,先上简易版的描述:每次从库里查询一下库存余量,每次购买一个商品. 数据库: store为库存量. service层代码: @Override public synchronized void sell() { System.out.println("<======"+System.currentTimeMillis()); //根据局id获取商品信息 Goods goods = goodDao.findOne(1); //获取当前库存 int store

v2g-controller层总结和service层 和写业务逻辑时候遇到的问题

针对controller 这一层,跟之前遇到的问题  就是 不能在controller 调用mapper.在controller就只能调用service层,controller只负责 接收 前端传来的数据 通常如果是查询就用 GetMapping如果是新增或者修改就用 PostMapping 在controller层只负责赋值一些重要的参数,因为有可能有多个controller调用的是同一个service 针对 service层在这一层,我们只做这一层该做的事情,他比如是插入那么在定义该serv

系统管理模块_部门管理_改进_抽取添加与修改JSP页面中的公共代码_在显示层抽取BaseAction_合并Service层与Dao层

系统管理模块_部门管理_改进1:抽取添加与修改JSP页面中的公共代码 commons.jspf <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <meta http-equiv="Conten