2013-03-22 35 views
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; 
} 
+0

显示您的代码?你是否使用锁来序列化访问?您的批处理可能会获得这些共享变量的锁定并阻止其他人。 – nunespascal 2013-03-22 13:29:25

+0

不,我没有使用锁。我添加了一些可以通过ajax和批处理访问的代码。 – user2199346 2013-03-22 13:42:19

+0

“浏览器在得到响应之前无法响应” - 您使用的是同步ajax调用吗? – Igor 2013-03-22 14:10:18

回答