When I am using an async task, after finishing the task process (** marked) it gets stuck and doesn't go to the second line (populating the datagridview). If I remove the async task process, it works fine. If I use this async task for a single request XML it works fine, but multiple get stuck.
In this process I am using an Excel file that contains n number of data, mapping with a request XML body and post for response.
protected async void btnProcessFile_Click(object sender, EventArgs e)
{
var fubsServiceData = GetFubsServiceData.GetInstance();
string serviceCategory = ddlAcctServiceCatg.SelectedValue;
if (!fuFileUpload.HasFile) return;
if (serviceCategory == "0")
{
MessageBox.Show("Please select a category.");
}
else
{
try
{
var fileName = GetFileName();
switch (serviceCategory)
{
case "CIF":
**gvData.DataSource = await Task.Run(() =>
fubsServiceData.GetFubsServiceCifResponseInfo(fileName));**
gvData.DataBind();
DeleteFile(fileName);
btnExportToExcel.Visible = true;
break;
case "CLE":
gvData.DataSource = await Task.Run(() =>
fubsServiceData.GetFubsServiceClResponseInfo(fileName));
gvData.DataBind();
DeleteFile(fileName);
btnExportToExcel.Visible = true;
break;
}
foreach (GridViewRow row in gvData.Rows)
{
string rowType = row.Cells[0].Text;
row.ForeColor = rowType == "FAILURE" ? Color.DarkRed : Color.Green;
}
if (gvData.Rows.Count != 0)
{
MessageBox.Show(@"Process completed successfully.");
}
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
}
}