0

我有一个 vb.net 4.0 UI,它基本上允许用户在 SQL Server 2008 数据库上搜索数据并更新/操作它。所有与数据库的通信都是通过存储过程完成的。其中一个更新过程可能需要长达 6 分钟的时间来处理 - 目前用户只会看到“处理中...”消息,直到更新完成,然后才会显示结果。

我认为这是一个很好的后台任务候选人。我希望用户能够调用请求,然后继续在 UI 中进行其他工作。当任务完成时,它会通知他们结果。我可以用线程来完成这个吗?我是线程新手,但鉴于一些文献和一个或 2 个示例,我可能正在路上。我已经进行了一些谷歌搜索,但在示例中用户是否可以在任务执行时继续在 UI 中工作并不明显。还有其他选择可以完成我所描述的吗?

谢谢。

4

1 回答 1

1

运行后台任务有很多选择,但在 .net 4.0 中,最简洁的可能是使用 TPL(任务并行库)。您可以按如下方式执行后台任务:

Task.Factory.StartNew(()=>SomeMethod());

详细信息可以在这里找到。

http://msdn.microsoft.com/en-us/library/dd460717.aspx

但请记住,如果您需要在从该调用返回时执行任何 UI 更新,则需要将其分派回 UI 线程。

TPL 还具有在 Dispatcher 线程上运行延续的机制。

在后台任务运行时,不会阻塞 UI 线程。

于 2012-07-12T11:52:54.373 回答