在多线程中维护connectioncache id

时间:2014-07-23 11:23:15

标签: c# multithreading

这是我的情景:

C#winapp前端和cobol作为后端。我们曾经逐行检查一个表(例如:m1),在一个名为“status”的列中输入一个条目“2”,如果找到则执行一些任务

使用多线程,自动用户将登录并对表(m1)中的条目2执行检查,这意味着自动用户将在第一次登录3Sec后再次登录并执行相同的检查。 (如果找到条目,它将执行一些操作。)用户登录和检查将使用多线程每3秒执行一次,并重复执行该方案,直到应用程序结束。

问题出现

一旦用户登录,将为用户生成id并将其存储在会话缓存中。如上所述,如果在表中找到条目2,则它将通过检索存储在高速缓存中的id来执行其他任务。由于多个用户记录之间的时间间隔是3秒。每个log-gin的id和id将存储在缓存中。以前的用户ID被下一个用户的id替换。这导致检索错误的id。

如何避免这个问题?请建议任何解决方案或替代方式来存储id

 namespace connection
{
    public class helper
    {
        public static void SetConnId(int id)
        {
            try
            {
                User backend = ConnectionCache.Backend;
                backend.ConnectionId = id;
            }
            catch { }
        }
        public static int GetConnId()
        {
            try
            {
                return ConnectionCache.Backend.ConnectionId;
            }
            catch { }
            return 0;
        }
      }
}

0 个答案:

没有答案