我在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;
}
答案 0 :(得分:0)
您可以使用lock structure
来阻止同时访问两个线程
mutual exclusion problem
link:http://msdn.microsoft.com/fr-fr/library/c5kehkcz(v=vs.80).aspx
注意:您也可以使用Monitor,Mutex或Semaphore ......