如何在域服务中取消Silverlight RIA InvokeOperation?

时间:2012-03-26 13:44:27

标签: silverlight wcf-ria-services

我在服务器上有以下方法:

[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;
}

但取消不起作用,我不确定实施。

1 个答案:

答案 0 :(得分:0)

我建议您阅读手册,在这种情况下:MSDN

看起来SupportsCancellation方法总是返回false,你需要覆盖它。但是,如MSDN所述,此处还有其他注意事项。