共享从ajax频繁调用的相同变量

时间:2013-03-22 13:25:32

标签: c# asp.net ajax

我在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;
}

1 个答案:

答案 0 :(得分:0)

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

mutual exclusion problem

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

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