0

我正在 asp.net 中创建一个具有批处理过程的 Web 应用程序(在后台执行大约需要 2 小时)。我创建了一个静态类,它有一些静态变量来更新批处理的进度。从 Web 浏览器通过 ajax 访问这些变量以显示进度。

现在的问题是,当调用 ajax 来访问这些静态变量时,浏览器在从服务器获得响应之前没有响应。我认为这是由于同时从 ajax 和后台批处理过程访问相同的静态变量而发生的。但是当后台批处理没有运行时,一切都很好。

请帮我解决这个问题或让我知道更好的方法。

共享部分

public static class ExecutionStatusLog
{
  public static string RunID;
  public static string ExecutionStatus;
  public static int RunningFlag = 0;        
  public static DateTime StartTime;
  public static DateTime EndTime;
  public static int count;
}
4

1 回答 1

0

您可以使用lock structure为了同时阻止两个线程的访问

mutual exclusion problem

链接: http: //msdn.microsoft.com/fr-fr/library/c5kehkcz (v=vs.80).aspx

注意:您也可以使用 Monitor、Mutex 或 Semaphore ...

于 2013-03-22T14:01:47.463 回答