try using cancellation token by specifying it your function in task
http://blogs.msdn.com/b/csharpfaq/archive/2010/07/19/parallel-programming-task-cancellation.aspx
CancellationTokenSource tokenSource = new CancellationTokenSource();
Task.Factory.StartNew( () => {
// Do work
onCompleteCallBack(someResult);
}, tokenSource.Token);
private void cancel_Click(object sender, RoutedEventArgs e)
{
tokenSource.Cancel();
}