0

I need to call CallServiceCompleted() method after execution of objMy_HelloWorldCompleted. Currently before Execution of objMy_HelloWorldCompleted, CallServiceCompleted is being called.

protected void btnCheck_Click(object sender, EventArgs e) {

    Task taskA = Task.Factory.StartNew(() => CallServices());
    taskA.Wait();
    //CallServices();

    if(taskA.IsCompleted ) {
        CallServiceCompleted();
    }

}

private void CallServiceCompleted() {
    lblServicesCompleted.Text = "Work Completed";
}

private void CallServices() {
    myITSSEVR.myserv objMy = new myITSSEVR.myserv();
    string s = "New Line";
    objMy.HelloWorldCompleted += objMy_HelloWorldCompleted;
    objMy.HelloWorldAsync(s);
}

void objMy_HelloWorldCompleted(object sender,  myITSSEVR.HelloWorldCompletedEventArgs e) {
    string s2 = (string)e.UserState; 
    lblName.Text = e.Result.ToString();
}
Cœur
  • 37,241
  • 25
  • 195
  • 267

1 Answers1

1

There's Page.RegisterAsyncTask to handle click events:

protected void btnAsyncPostBack_Click(object sender, EventArgs e) {
    RegisterAsyncTask(new PageAsyncTask(MyMethodAsync));
}

private async Task MyMethodAsync(object sender, EventArgs e, CancellationToken cancellationToken) {
    var sum = await GetSumAsync();
    lblMessage.Text = string.Format("Sum = {0}", sum);
}

Link to the forum thread.

And similar question on StackOverflow

Community
  • 1
  • 1
Mikhail Tumashenko
  • 1,683
  • 2
  • 21
  • 28