使用c#.net在不同实例中执行线程时出现的问题

本文关键字:线程 问题 执行 net 实例 使用 | 更新日期: 2023-09-27 18:25:06

这里我使用的是c#.net窗口服务,该记录位于数据库中,其中一个特定列为null,它将获取这些记录,并创建一个文本文件,它将状态更新为FG,而如果我在该实例启动该服务,如果有任何记录的状态为null,则它将正确生成并更新,在另一个例子中,如果假设数据库中有新记录,这个线程没有启动,如果我们想重新启动服务,意味着它正在占用现有记录,如何解决这个问题,有人能指导我吗?

    using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew)) // Transaction Scope Started
    {
        try
        {
            if (threadCTD == null)
            {
                threadCTD = new Thread(new ThreadStart(FileGenerationForCTD));  // Thread Initialize for CTD 
                DataSet samdsCTD = new DataSet();
                DataAccessLayer objDbAccessCTD = new DataAccessLayer();
                samdsCTD = objDbAccessCTD.getFilesFromDataBase(strSelectProcedureName, "ECD");
                if (samdsCTD.Tables[0].Rows.Count > 0 && samdsCTD.Tables[1].Rows.Count > 0)
                {
                    samdsCTD.Dispose();
                    if ((threadCTD == null) || (threadCTD.ThreadState == System.Threading.ThreadState.Stopped) || (threadCTD.ThreadState == System.Threading.ThreadState.Unstarted) || (threadCTD.ThreadState == System.Threading.ThreadState.Aborted))
                        threadCTD.Start();  // Thread Started for ITD 
                }
                samdsCTD.Dispose();
            }
        }
        catch (Exception ex){}
        finally
        {
            scope.Complete();
        }
    }

使用c#.net在不同实例中执行线程时出现的问题

应该有一个循环,经常检查数据库中的新记录。

您的代码似乎没有这个循环,它将迭代并检查数据库中的新记录。有没有其他代码可以调用上面显示的代码来实现这一点?如果可以的话,你也可以发布吗?