如果我只是運行其中一個異步事件,則所有事情都會按照它的原樣執行。但是,當我加入所有3個事件時,我從我的語法中得到(從我所收集的)暫停。這是一個完整的堆棧跟蹤,希望能夠提供幫助。使用異步時超時
System.Web.HttpUnhandledException(0X80004005):類型System.Web.HttpUnhandledException'引發的異常。 ---> System.NullReferenceException:對象引用未設置爲對象的實例。在System.Web.UI.Page.d__554.MoveNext()
System.Web.UI.Page.HandleError(Exception E)
在System.Web.UI.Page.d__554.MoveNext()
---從先前位置棧跟蹤其中拋出異常---
在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess結束(任務task) 在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任務task)
在System.Web.TaskAsyncHelper.EndTask(IAsyncResult的AR)
在系統.Web.UI.Page.AsyncPageEndProcessRequest(IAsyncResult result)
at ASP.pages_AsyncTest1_aspx.EndProcessRequest(IAsyncResult ar)in c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ vs \ 14a1541c \ 96dbdee3 \ App_Web_AsyncTest1.aspx.f9b0821e.cqtg2bnc.0.cs:行0
在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在System.Web.HttpApplication.ExecuteStep(IExecutionStep步驟,布爾&同步完成)
異常類型:System.Web.HttpUnhandledException
消息:拋出異常類型'System.Web.HttpUnhandledException'。
堆棧跟蹤:
在System.Web.UI.Page.HandleError(例外五)
在System.Web.UI.Page.d__554.MoveNext()
---從先前的位置,其中異常堆棧跟蹤的結尾被拋出---
在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任務task)
在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任務task)
在System.Web.TaskAsyncHelper.EndTask(IAsyncResult的AR )
at System.Web.UI.Page.AsyncPageEndProcessRequest(IAsyncResult result)
at ASP.pages_AsyncTest1_aspx.EndProcessRequest(IAsyncResult ar)in c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ vs \ 14a1541c \ 96dbdee3 \ App_Web_AsyncTest1.aspx.f9b0821e.cqtg2bnc.0.cs :在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在System.Web.HttpApplication.ExecuteStep(IExecutionStep步驟,布爾& completedSynchronously)線0
而這裏是我想要執行的C#語法:
namespace CEDS
{
public partial class BBLL : System.Web.UI.UserControl
{
private DataSet DS = new DataSet();
private DataSet DS1 = new DataSet();
private DataSet DS2 = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Page.RegisterAsyncTask(new PageAsyncTask(RunSQLUSP));
}
}
public async System.Threading.Tasks.Task RunSQLUSP()
{
var t1 = GetDataForDropDown1();
var t2 = GetDataForDropDown2();
var t3 = GetDataForDropDown3();
//This line is hit then error is thrown
await System.Threading.Tasks.Task.WhenAll(t1, t2, t3);
//Bind Data to grids/dropdowns
}
}
}
async System.Threading.Tasks.Task<DataSet> GetDataForDropDown1()
{
DS = GetDataForDropDown1();
return DS;
}
async System.Threading.Tasks.Task<DataSet> GetDataForDropDown2()
{
DS2 = GetDataForDropDown2();
return DS2;
}
async System.Threading.Tasks.Task<DataSet> GetDataForDropDown3()
{
DS = GetDataForDropDown3();
return DS;
}
我在超時中添加建議,但現在它會引發一個NullReference異常? –
哪一行引發異常? –
在上面標記的同一行上。等待。 –