首页 新闻 搜索 专区 学院

MVC中如何在请求的某个Controller方法外返回值给客户端?

0
悬赏园豆:100 [已解决问题] 解决于 2013-11-15 11:38
客户端请求某一方法,该方法需要引用win32或者console的exe,计算量较大,在新的进程里面处理。

public ActionResult Test()
{
process.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
}

public string p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
//新的线程会将处理结果返回到这里 ,如何能返回给客户端?

}
 
大大们,如何破?
王叉叉的主页 王叉叉 | 初学一级 | 园豆:112
提问于:2013-11-15 00:21
< >
分享
最佳答案
0
使用 SignalR 构建进度栏
这个可以想客户端实时发送消息
收获园豆:20
袁家小黑球 | 小虾三级 |园豆:1045 | 2013-11-15 09:21
其他回答(2)
2

mvc 4.0 及更高版本下可以直接用 async/await:

 

public async Task<ActionResult> Test()
{
    var tcs = new TaskCompletionSource<TDataType>();
    
    process.OutputDataReceived += (sender, e) => tcs.SetResult(e.Data);
    
    var data = await tcs.Task;
    
    //现在有数据了,按你的需求处理吧
    
    return View(data);
}
收获园豆:80
deerchao | 园豆:8167 (大侠五级) | 2013-11-15 03:09

能简单的理解为异步吗

支持(0) 反对(0) 平常心队长 | 园豆:1113 (小虾三级) | 2013-11-15 09:07
0

上面的叫:异步等待

悟行 | 园豆:12240 (专家六级) | 2013-11-15 09:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册