繁体   English   中英

在.net 4.0 UI中运行后台任务的选项

[英]Options to run background task in .net 4.0 UI

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

我认为这是进行后台任务的理想人选。 我希望用户能够调用请求,然后继续在UI中执行其他工作。 任务完成后,它将把结果通知他们。 我可以通过线程完成此操作吗? 我是线程技术的新手,但是给出了一些文献和一个或两个例子,可能会遇到麻烦。 我已经完成了一些谷歌搜索,但是在示例中并不清楚用户是否可以在任务执行时继续在UI中工作。 还有其他选择可以实现我所描述的内容吗?

谢谢。

有许多用于运行后台任务的选项,但是在.net 4.0中,最可能的方法是利用TPL(任务并行库)。 您可以执行以下后台任务:

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM