如何在异步方法完成之前返回我的视图 [英] How can I return my view until my async methode finish

查看:69
本文介绍了如何在异步方法完成之前返回我的视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





i有一个Async方法,我想把它叫做我在行动中添加的相同特征,我的问题是我返回查看时methode在后台保持runnig并且视图是空的



我尝试过:



i试试,



公共ActionResult loaddata()

{

任务任务=新任务(WsdlCompareAsync);

task.Start();





返回Json(new {data = myListDisp},JsonRequestBehavior.AllowGet);

}

静态列表< tracking> myListDisp = new List< tracking>();



private async void WsdlCompareAsync()

{

< br $>


string userName,token,scopePath,apiVersion,defaultCollectionUrl,firstEnvironmentToCompare,secondEnvironmentToCompare;

GetConfiguration(out userName,out token,out scopePath,out apiVersion,out defaultCollectionUrl,out firstEnvironmentToCompare,out secondEnvironmentToCompare);



WsdlDiff diff = new WsdlDiff(defaultCollectionUrl,userName,token,scopePath,apiVersion);

myListDisp = await diff.Compare(firstEnvironmentToCompare,secondEnvironmentToCompare);



}





WsdlCompareAsync在backgroude中运行我已添加静态监听,看看方法是否有效,当我刷新视图cantain数据时

解决方案

您必须按以下方式使用。让我知道



  public   async 任务< ActionResult> loaddata()
{
List myListDisp = await WsdlCompareAsync();
return Json( new {data = myListDisp},JsonRequestBehavior.AllowGet);
}


私人 async 任务< List> ; WsdlCompareAsync()
{
string userName,token,scopePath,apiVersion,defaultCollectionUrl,firstEnvironmentToCompare,secondEnvironmentToCompare;
GetConfiguration( out userName, out token, out scopePath, out apiVersion, out defaultCollectionUrl, out firstEnvironmentToCompare, out secondEnvironmentToCompare);

WsdlDiff diff = new WsdlDiff(defaultCollectionUrl,userName,token,scopePath,apiVersion);
return await diff.Compare(firstEnvironmentToCompare,secondEnvironmentToCompare);

}


hi,

i have an Async methode and i want to call it to make same traitment i have added in my action, my issue is whene i return view the methode stay runnig in background and the view is empty

What I have tried:

i have try,

public ActionResult loaddata()
{
Task task = new Task(WsdlCompareAsync);
task.Start();


return Json(new { data = myListDisp }, JsonRequestBehavior.AllowGet);
}
static List<tracking> myListDisp = new List<tracking>();

private async void WsdlCompareAsync()
{


string userName, token, scopePath, apiVersion, defaultCollectionUrl, firstEnvironmentToCompare, secondEnvironmentToCompare;
GetConfiguration(out userName, out token, out scopePath, out apiVersion, out defaultCollectionUrl, out firstEnvironmentToCompare, out secondEnvironmentToCompare);

WsdlDiff diff = new WsdlDiff(defaultCollectionUrl, userName, token, scopePath, apiVersion);
myListDisp= await diff.Compare(firstEnvironmentToCompare, secondEnvironmentToCompare);

}


the WsdlCompareAsync stay runing in backgroude i have add static liste to see if the methode work, whene i refresh the view cantain data

解决方案

You have to use in the following way. Let me know

public async Task<ActionResult> loaddata()
{
List myListDisp = await WsdlCompareAsync();
return Json(new { data = myListDisp }, JsonRequestBehavior.AllowGet);
}


private async Task<List> WsdlCompareAsync()
{
string userName, token, scopePath, apiVersion, defaultCollectionUrl, firstEnvironmentToCompare, secondEnvironmentToCompare;
GetConfiguration(out userName, out token, out scopePath, out apiVersion, out defaultCollectionUrl, out firstEnvironmentToCompare, out secondEnvironmentToCompare);

WsdlDiff diff = new WsdlDiff(defaultCollectionUrl, userName, token, scopePath, apiVersion);
return await diff.Compare(firstEnvironmentToCompare, secondEnvironmentToCompare);

}


这篇关于如何在异步方法完成之前返回我的视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆