C# 共享经常从ajax调用的相同变量

C# 共享经常从ajax调用的相同变量,c#,asp.net,ajax,C#,Asp.net,Ajax,我正在asp.net中创建一个web应用程序,它有一个批处理过程(在后台执行大约需要2小时)。我已经创建了一个静态类,它有一些静态变量来更新批处理过程的进度。在web浏览器中,通过ajax访问这些变量以显示进度 现在的问题是,当调用ajax访问这些静态变量时,浏览器在从服务器获得响应之前不会响应。我认为这是因为同时从ajax和后台批处理访问相同的静态变量。但当后台批处理进程未运行时,一切正常 请帮我解决这个问题,或者让我知道更好的方法 共享部分的位 public static class Exe

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

您可以使用
锁结构
来同时阻止两个线程的访问

mutual exclusion problem
链接:


注意:您也可以使用监视器、互斥或信号量…

显示您的代码?您是否使用锁来序列化访问?您的批处理过程可能会获得这些共享变量的锁,并阻止其他所有人。不,我没有使用锁。我正在添加ajax和批处理都可以访问的代码。“浏览器在得到响应之前不会响应”-您是否使用同步ajax调用?使用异步ajax调用。这是什么意思“浏览器在从服务器获得响应之前不响应”是指?浏览器进程没有响应?