长时间运行的进程vb.net

时间:2011-06-02 21:13:14

标签: windows vb.net

我有一个服务票证管理应用程序,用户希望在MDI框架的选项卡上打开多个票证详细信息。由于此应用程序必须通过Web XML服务与其他公司进行通信,因此大约需要15~20秒。最抱怨的用户是他需要等到保存过程完成。正在保存数据时光标正在工作,而其他数据无法完成。

在从其他窗口保存数据时,让用户打开其他窗口并执行其他操作或保存数据的最有效方法是什么?

顺便说一句,这是VB.Net / Windows Application。

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

您可以使用BackgroundWorker或新线程。我个人会尝试使用内置的异步方法,例如BeginInvoke

http://www.developer.com/net/vb/article.php/1443981/Asynchronous-Web-Services-for-Visual-Basic-NET.htm

请记住,异步操作变得非常复杂,非常重要。

答案 2 :(得分:0)

我已经编写了一个Web服务,它是解决方案的一部分,需要关闭并运行一个需要很长时间才能运行的方法。经过一些实验,我认为最简单的方法是在Web服务中的新线程中启动长时间运行的任务,并将自定义对象返回给调用应用程序(稍后再使用)。

<WebMethod()> Public Function StartChecks() As ResponseItem

    Dim t As New Thread(New ThreadStart(AddressOf Me.StartWork))
    t.Start()

    Return New ResponseItem(CheckGUID.ToString)

End Function