C# 发生异常时如何停止任务和鼠标光标

C# 发生异常时如何停止任务和鼠标光标,c#,wpf,asynchronous,task-parallel-library,task,C#,Wpf,Asynchronous,Task Parallel Library,Task,我在使用下面的代码,问题是当我在GetUserData()中出现异常时 我将消息发送到UI,当我将鼠标放入捕捉器时,鼠标移动器不会停止 鼠标光标。Null导致转储。 我的问题是: 当我遇到异常,即无法继续执行continueWith时,如何停止任务(tpl) 当我遇到异常时,如何忽略鼠标光标 您可以使用Task.Wait()捕获实例。如果执行期间有一个exeption,它将被重新抛出 这篇文章描述的行为非常好 对于第2个问题:如果要更改Dispatcher线程的游标,则需要使用以下命令将操作重

我在使用下面的代码,问题是当我在GetUserData()中出现异常时 我将消息发送到UI,当我将鼠标放入捕捉器时,鼠标移动器不会停止 鼠标光标。Null导致转储。 我的问题是:

  • 当我遇到异常,即无法继续执行continueWith时,如何停止任务(tpl)
  • 当我遇到异常时,如何忽略鼠标光标

  • 您可以使用
    Task.Wait()
    捕获实例。如果执行期间有一个exeption,它将被重新抛出

    这篇文章描述的行为非常好

    对于第2个问题:如果要更改Dispatcher线程的游标,则需要使用以下命令将操作重新发送回Dispatcher:

    Application.Current.Dispatcher.Invoke(new Action(() => Mouse.OverrideCursor = Cursors.Null));
    

    为什么使用
    ContinueWith
    而不是
    async/await
    ,您是否仅限于VS2010?否则,如果您需要以.NET 4.0为目标,但使用VS2012+开发,您仍然可以使用
    async/await
    ,Microsoft为此提供了库。
    Application.Current.Dispatcher.Invoke(new Action(() => Mouse.OverrideCursor = Cursors.Null));