У меня есть следующий метод на сервере:
[Invoke]
public string GeneratePayroll(string empID,int PeriodID, Guid userID)
{
…
}
На клиенте я вызываю метод следующим образом:
InvokeOperation<String> payrollGenerationOperation;
payrollGenerationOperation = _payrollTransContext.GeneratePayroll(EmployeeID, PeriodID, UserID);
payrollGenerationOperation.Completed += new EventHandler(GeneratePayroll_Completed);
void GeneratePayroll_Completed(object sender, EventArgs e)
{
…
if (!payrollGenerationOperation.IsCanceled)
txtStatus.Content = "Completed!";
else
txtStatus.Content = "Canceled!";
}
В событии кнопки отмены:
private void btnCancel_Click(object sender, RoutedEventArgs e)
{
payrollGenerationOperation.Cancel();
btnCancel.IsEnabled = false;
}
Но Отмена не работает, я не уверен насчет реализации.