Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Task.WhenAll给出了一个错误_C#_Multithreading_Asp.net Mvc 4_Async Await - Fatal编程技术网

C# Task.WhenAll给出了一个错误

C# Task.WhenAll给出了一个错误,c#,multithreading,asp.net-mvc-4,async-await,C#,Multithreading,Asp.net Mvc 4,Async Await,private异步任务GetMonitoredWaysListAndPushViewData(int?roadID=null,int?segmentID=null,int?cityID=null,Guid?reporterId=null) { int?id=城市id; var dbWaysList= _context.MonitoredWays.Where( m=> !m.IsTest&& (m.RoadID!=null&&m.Road.AppOrder>=0&&id 0 :m.Road.Are

private异步任务GetMonitoredWaysListAndPushViewData(int?roadID=null,int?segmentID=null,int?cityID=null,Guid?reporterId=null)
{
int?id=城市id;
var dbWaysList=
_context.MonitoredWays.Where(
m=>
!m.IsTest&&
(m.RoadID!=null&&m.Road.AppOrder>=0&&id 0
:m.Road.AreaID==id));
var XWaySelectList=(来自dbWaysList中的s
选择新的
{
OppId=s.相反段??0,
值=s.ID,
Title=s.EnglishName,
RoadTitle=s.Road.EnglishName
}).ToList().Distinct();
var repsList=(从XwaysSelectList//context.MonitoredWays中的s)
选择新的SelectListItem
{
Value=s.Value.ToString(CultureInfo.InvariantCulture),
Text=string.IsNullOrEmpty(s.RoadTitle)?s.Title:s.RoadTitle+“(“+s.Title+”)”,
所选=分段ID!=null&&(分段ID.Value==s.Value)
}).Distinct().ToList();
var serializer=新的JavaScriptSerializer();
string wayseSelectListOppId=serializer.Serialize(xWayseSelectList);
string outputOfAreas=serializer.Serialize(repsList);
ViewData[“MonitoredWaysListSerialized”]=输出数据;
ViewData[“反对项监视方向”]=路径SelectListOppId;
ViewBag.MonitoredWaysList=repsList;
var conditionslist=CreateListFromSingle(
新的
{
value=“99”,
text=“未指定”
}
);
添加(新的{value=“4”,text=“incident”});
添加(新的{value=“2”,text=“Danger”});
添加(新的{value=“3”,text=“道路工程”});
string outputOfConditions=serializer.Serialize(条件列表);
ViewData[“ConditionsListSerialized”]=输出条件;
var条件系统=
(来自条件列表中的条件)
选择新的SelectListItem
{
值=条件值,
Text=condition.Text
}).ToList();
ViewBag.ConditionsList=条件列表;
var ratingslist=CreateListFromSingle(
新的
{
value=“0”,
text=“V.坏”
}
);
添加(新的{value=“1”,text=“Bad”});
ratingslist.Add(新的{value=“2”,text=“Average”});
添加(新的{value=“3”,text=“Good”});
添加(新的{value=“3”,text=“V.Good”});
ViewBag.Ratingslist=Ratingslist;
string outputOfRatings=serializer.Serialize(ratingslist);
ViewData[“RatingsListSerialized”]=OutputFratings;
if(roadID!=null)
{
var rod=_context.Roads.FirstOrDefault(r=>r.ID==roadID);
如果(杆!=null)
{
cityID=杆面积ID;
}
}
var dbalist=_context.Cities.ToList();
可变区=
(来自列表中的区域)
选择新的SelectListItem
{
Value=area.ID.ToString(CultureInfo.InvariantCulture),
Text=area.EnglishName,
所选=cityID!=null&(cityID.Value==area.ID)
}).ToList();
ViewBag.AREA列表=区域;
var areasList=(来自s in _context.Cities
选择
新的
{
id=s.id,
text=s.EnglishName
}).ToList();
serializer=新的JavaScriptSerializer();
string outputOfAreas1=序列化程序.Serialize(区域列表);
ViewData[“AreasListSerialized”]=输出FareAs1;
var fakeGroup=_repository.First(g=>g.Name.Contains(“假”);
var fakeGroupId=3;
if(fakeGroup!=null)
fakeGroupId=fakeGroup.ID;
var dbNamesList=(来自_context.UserAdditionalDatas中的userAD
在userAD.ID等于groups.UserDataId的_context.UserMultiGroups中加入组
在userAD.ID等于aspUser.ID的_context.AspnetUsers中加入aspUser
其中(groups.UserGroupId==fakeGroupId)
选择新的
{
Text=userAD.FirstName,
Value=userAD.ID,
所选=错误
//Email=aspUser.Username
}).Distinct().ToList();
var names=dbNamesList.Select(s=>newselectListItem
{
Text=s.Text,
Value=s.Value.ToString(),
已选定=已选定
}).ToList();
if(reporterId!=null)
{
var member=\u repository.FindOne((Guid)reporterId);
如果(成员!=null)
{
名称。添加(新建SelectListItem
{
Text=member.FirstName,
Value=member.ID.ToString(),
所选=真
});
}
}
public async virtual Task<ActionResult> Store(int? id, int? mainRoadID, int? segmentID, int? cityid, string serverMessage = "")
{
    UserTrafficReport_Create model = await Task.WhenAll(GetNewModel, InitialCameras, GetMonitoredWaysListAndPushViewData(mainRoadID, segmentID, cityid));            
    return View(model);
}
    public async virtual Task<UserTrafficReport_Create> GetNewModel(int? id, int? mainRoadID, int? segmentID, int? cityid)
    {
        var model = new UserTrafficReport_Create();
        var serializer = new JavaScriptSerializer();
        if (id != null && id > 0)
        {
            var report = _repository.FindOne<UserTrafficReport>((int)id);
            model.InjectFrom(report);
            model.Comments = report.Comments;
            if (report.PictureSize.HasValue && report.PictureSize > 0)
                model.photo_name = report.ID.ToString(CultureInfo.InvariantCulture);

            if (report.RoadID != null)
            {
                model.RoadID = (int)report.RoadID;
                _repository.FindOne<MonitoredWay>((int)report.RoadID);
            }
            FakeUsers(report.UserID);
            model.RoadStatus = report.RoadStatus ?? 99;
            if (report.traffic_rating >= 0)
                model.traffic_rating = report.traffic_rating;
            else
                model.traffic_rating = null;
        }
        else
        {
            var fakeGroup = _repository.First<UserGroup>(g => g.Name.Contains("Fake"));
            var fakeGroupId = 3;
            if (fakeGroup != null)
                fakeGroupId = fakeGroup.ID;

            var dbNamesList = (from userAD in _context.UserAdditionalDatas
                               join groups in _context.UserMultiGroups on userAD.ID equals groups.UserDataId
                               join aspUser in _context.AspnetUsers on userAD.ID equals aspUser.ID
                               where (groups.UserGroupId == fakeGroupId)
                               select new
                               {
                                   name = userAD.FirstName,
                                   UserName = aspUser.Username,
                                   userId = aspUser.ID
                               }).Distinct().ToList();

            if (dbNamesList.Any())
            {
                var randomedList = dbNamesList.Randomize();
                var fakeUser = randomedList.FirstOrDefault();
                if (fakeUser != null)
                {
                    model.GuestName = fakeUser.name;
                    model.UserID = fakeUser.userId;
                }
            }

            model.RoadID = segmentID.GetValueOrDefault(-1);
            model.traffic_rating = -1;
            if (cityid != null)
                model.CityId = (int)cityid;
        }
        return model;
    }
    public async virtual Task InitialCameras(int? cityid,string serverMessage = "")
    {
        var serializer = new JavaScriptSerializer();
        var conditionslist = CreateListFromSingle(
                   new
                   {
                       value = "99",
                       text = "Not Specified"
                   }
            );
        conditionslist.Add(new { value = "4", text = "Accident" });
        conditionslist.Add(new { value = "2", text = "Danger" });
        conditionslist.Add(new { value = "3", text = "Road Work" });

        string outputOfConditions = serializer.Serialize(conditionslist);
        ViewData["ConditionsListSerialized"] = outputOfConditions;
        var conditionslistitems =
         (from condition in conditionslist
          select new SelectListItem
          {
              Value = condition.value,
              Text = condition.text
          }).ToList();
        ViewBag.ConditionsList = conditionslistitems;
        ViewData["serverMsg"] = serverMessage;
        if (cityid == null || cityid == -1)
        {
            var cameras = _context.Cameras.Select(c => new
            {
                value = c.Id,
                text = c.Name
            }).ToList();
            cameras.Insert(0, new { value = (long)0, text = "--Select a Camera --" });
            ViewData["Cameras"] = serializer.Serialize(cameras);
        }
        else
            ViewData["Cameras"] = GetCityCameras((int)cityid);
    }
    private async Task GetMonitoredWaysListAndPushViewData(int? roadID = null, int? segmentID = null, int? cityID = null, Guid? reporterId = null)
    {
        int? id = cityID;
        var dbWaysList =
            _context.MonitoredWays.Where(
                m =>
                    !m.IsTest &&
                    (m.RoadID != null && m.Road.AppOrder >= 0 && (id <= 0 || id == null)
                        ? m.Road.AreaID > 0
                        : m.Road.AreaID == id));

        var xWayseSelectList = (from s in dbWaysList
                                select new
                                {
                                    OppId = s.OppositeSegment ?? 0,
                                    Value = s.ID,
                                    Title = s.EnglishName,
                                    RoadTitle = s.Road.EnglishName
                                }).ToList().Distinct();

        var repsList = (from s in xWayseSelectList//context.MonitoredWays
                        select new SelectListItem
                            {
                                Value = s.Value.ToString(CultureInfo.InvariantCulture),
                                Text = string.IsNullOrEmpty(s.RoadTitle) ? s.Title : s.RoadTitle + " (" + s.Title + ")",
                                Selected = segmentID != null && (segmentID.Value == s.Value)
                            }).Distinct().ToList();



        var serializer = new JavaScriptSerializer();
        string wayseSelectListOppId = serializer.Serialize(xWayseSelectList);
        string outputOfAreas = serializer.Serialize(repsList);
        ViewData["MonitoredWaysListSerialized"] = outputOfAreas;
        ViewData["OppositeMonitoredWays"] = wayseSelectListOppId;

        ViewBag.MonitoredWaysList = repsList;

        var conditionslist = CreateListFromSingle(
                   new
                   {
                       value = "99",
                       text = "Not Specified"
                   }
            );
        conditionslist.Add(new { value = "4", text = "Accident" });
        conditionslist.Add(new { value = "2", text = "Danger" });
        conditionslist.Add(new { value = "3", text = "Road Work" });

        string outputOfConditions = serializer.Serialize(conditionslist);
        ViewData["ConditionsListSerialized"] = outputOfConditions;
        var conditionslistitems =
         (from condition in conditionslist
          select new SelectListItem
          {
              Value = condition.value,
              Text = condition.text
          }).ToList();
        ViewBag.ConditionsList = conditionslistitems;

        var ratingslist = CreateListFromSingle(
       new
               {
                   value = "0",
                   text = "V. Bad"
               }
        );
        ratingslist.Add(new { value = "1", text = "Bad" });
        ratingslist.Add(new { value = "2", text = "Average" });
        ratingslist.Add(new { value = "3", text = "Good" });
        ratingslist.Add(new { value = "3", text = "V. Good" });
        ViewBag.Ratingslist = ratingslist;
        string outputOfRatings = serializer.Serialize(ratingslist);
        ViewData["RatingsListSerialized"] = outputOfRatings;

        if (roadID != null)
        {
            var rod = _context.Roads.FirstOrDefault(r => r.ID == roadID);
            if (rod != null)
            {
                cityID = rod.AreaID;
            }
        }

        var dbAreassList = _context.Cities.ToList();
        var areas =
            (from area in dbAreassList
             select new SelectListItem
             {
                 Value = area.ID.ToString(CultureInfo.InvariantCulture),
                 Text = area.EnglishName,
                 Selected = cityID != null && (cityID.Value == area.ID)
             }).ToList();
        ViewBag.AreasList = areas;
        var areasList = (from s in _context.Cities
                         select
                             new
                             {
                                 id = s.ID,
                                 text = s.EnglishName
                             }).ToList();

        serializer = new JavaScriptSerializer();
        string outputOfAreas1 = serializer.Serialize(areasList);
        ViewData["AreasListSerialized"] = outputOfAreas1;
        var fakeGroup = _repository.First<UserGroup>(g => g.Name.Contains("Fake"));
        var fakeGroupId = 3;
        if (fakeGroup != null)
            fakeGroupId = fakeGroup.ID;

        var dbNamesList = (from userAD in _context.UserAdditionalDatas
                           join groups in _context.UserMultiGroups on userAD.ID equals groups.UserDataId
                           join aspUser in _context.AspnetUsers on userAD.ID equals aspUser.ID
                           where (groups.UserGroupId == fakeGroupId)
                           select new
                           {
                               Text = userAD.FirstName,
                               Value = userAD.ID,
                               Selected = false
                               //Email = aspUser.Username
                           }).Distinct().ToList();
        var namess = dbNamesList.Select(s => new SelectListItem
                                                 {
                                                     Text = s.Text,
                                                     Value = s.Value.ToString(),
                                                     Selected = s.Selected
                                                 }).ToList();
        if (reporterId != null)
        {
            var member = _repository.FindOne<UserAdditionalData>((Guid)reporterId);
            if (member != null)
            {
                namess.Add(new SelectListItem
                               {
                                   Text = member.FirstName,
                                   Value = member.ID.ToString(),
                                   Selected = true
                               });
            }
        }

        var random = new Random();
        if (!namess.Any(n => n.Selected))
        {
            int rand = random.Next(0, namess.Count - 1);
            namess[rand].Selected = true;
        }

        ViewBag.FakeUsersList = namess;
    }
UserTrafficReport_Create model =
           await Task.WhenAll(
                      GetNewModel,
                      InitialCameras,
                      GetMonitoredWaysListAndPushViewData(mainRoadID, segmentID, cityid));    
Task<UserTrafficReport_Create> modelFactoryTask = GetNewModel(...);

await Task.WhenAll(
          modelFactoryTask ,
          InitialCameras(...),
          GetMonitoredWaysListAndPushViewData(mainRoadID, segmentID, cityid));

UserTrafficReport_Create model = modelFactoryTask.Result;