0
我在asp.net中创建了一个具有批处理过程(需要大约2小时才能在后台执行)的Web应用程序。我创建了一个静态类,它有一些静态变量来更新批处理过程的进度。通过web浏览器可以通过ajax访问这些变量来显示进度。共享来自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;
}
显示您的代码?你是否使用锁来序列化访问?您的批处理可能会获得这些共享变量的锁定并阻止其他人。 – nunespascal 2013-03-22 13:29:25
不,我没有使用锁。我添加了一些可以通过ajax和批处理访问的代码。 – user2199346 2013-03-22 13:42:19
“浏览器在得到响应之前无法响应” - 您使用的是同步ajax调用吗? – Igor 2013-03-22 14:10:18