当我点击运行按钮时(在我的 Default.aspx 中),一个进程启动(这个进程联系一个网络服务来获取一些文件等)。我如何:
确保一次只有一个进程在运行(即,如果我刷新浏览器,我不想再次启动该进程)
跟踪进度 - 我想跟踪流程的 4 个点(在 25%、50%、75%、100%),当每个部分完成时,我想更新进度条。我有一个运行进程的状态对象,但问题是如何自动更新进度条?
是否需要使用线程来实现以上两个?
请您参考如下方法:
以相反的顺序回答它们:
是的。你应该有一个对象来封装你的线程。
您的对象可以有一个公共(public)成员,其中包含流程的完成百分比。您可以定期对此进行轮询。您从 HTML 页面执行此操作的方式可能是 AJAX 请求,以使您的进度条最流畅。
您需要进行一些线程同步。也许通过互斥量。 Here's a good example of how to do this (向下滚动到 Mutex)。
