跟踪Web应用程序中单例进程的过程

时间:2010-01-26 19:55:10

标签: c# .net asp.net multithreading singleton

当我点击运行按钮(在我的Default.aspx中)时,一个进程启动(此进程联系web服务以获取某些文件等)。我如何:

  1. 确保一次只运行一个进程(例如,如果我刷新浏览器,我不想再次启动该进程)

  2. 跟踪进度 - 我想跟踪的过程有4个点(25%,50%,75%,100%),当每个部分完成时,我想更新进度条。我有一个运行过程的状态对象,但问题是如何自动更新进度条?

  3. 我是否需要使用线程来实现上述两个?

1 个答案:

答案 0 :(得分:0)

以相反的顺序回答它们:

  1. 是。你应该有一个对象来封装你的线程。

  2. 您可以拥有对象的公共成员,其中包含您的流程完成百分比。你可以定期轮询这个。从HTML页面执行此操作的方式可能是一个AJAX请求,使您的进度条最顺畅。

  3. 您需要进行一些线程同步。也许通过Mutex。 Here's a good example of how to do this(向下滚动到互斥锁)。