MVC中的异步方法

        MVC中的异步方法,注意加粗和黄色底色部分。

       public void FingerLoginAsync()
        {
            AsyncManager.OutstandingOperations.Increment();
            string strDbConn = System.Configuration.ConfigurationManager.AppSettings["DbConn"];
            string strConsoleRoot = System.Configuration.ConfigurationManager.AppSettings["ConsoleRoot"];
            strDbConn = "\"" + strDbConn + "\"";
            string strConsolePath = strConsoleRoot + @"\FingerMatch.exe";
            string strLoginFingerInfo = Request["FingerInfo"];
            strLoginFingerInfo = "\"" + strLoginFingerInfo + "\"";
            ProcessStartInfo start = new ProcessStartInfo();
            start.Arguments = strConsolePath + " " + strDbConn + " " + strLoginFingerInfo;
            start.WorkingDirectory = strConsoleRoot;  
            start.FileName = strConsolePath;
            start.UseShellExecute = false;
            start.RedirectStandardInput = true;
            start.RedirectStandardOutput = true;
            start.RedirectStandardError = true;
            start.CreateNoWindow = true
            process = Process.Start(start); 
            process.OutputDataReceived += (sender, e) =>
            {
                if (!string.IsNullOrEmpty(e.Data))
                {
                    AsyncManager.Parameters["strStudentNo"] = e.Data;
                    AsyncManager.OutstandingOperations.Decrement();
                }
                else
                { 
                    AsyncManager.Parameters["strStudentNo"] = "error";
                    AsyncManager.OutstandingOperations.Decrement();
                } 
            }; 
            process.BeginOutputReadLine(); 
        }
        public ActionResult FingerLoginCompleted(string strStudentNo)
        { 
            return GetJsonReturn<TouchUserInfo>(true"", userInfo,null);  
        }



posted @ 2014-01-06 15:00  2014从零开始  阅读(426)  评论(0编辑  收藏  举报