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

使用c#.net在不同实例中执行线程时出现的问题,c#,multithreading,C#,Multithreading,这里我使用的是c#.net窗口服务,该记录位于数据库中,其中一个特定列为null,它将获取这些记录,并创建一个文本文件,它将状态更新为FG,而当我在该实例中启动该服务时,如果任何状态为null的记录正确生成并更新,在另一个例子中,如果假设新记录进入数据库,这个线程没有启动,如果我们想重新启动服务,这意味着它正在获取现有记录,如何解决这个问题,任何人都可以指导我吗 using (TransactionScope scope = new TransactionScope(Transactio

这里我使用的是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();
        }
    }

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

您的代码似乎没有这个循环,它将迭代并检查数据库中的新记录。是否有其他代码调用上面显示的代码来执行此操作?
如果是,您也可以发布吗?

如果您可以在发布之前清理代码,这将非常有帮助-更合理地缩进代码,以便我们可以看到相关的位,去掉注释外的行等。按要求看@乔恩SKET,我确实做了SAMENOOT——看看所有的空行和注释,这比它需要的要多。对不起,我已经阅读和重读了这个问题,无法掌握它。请你重新措辞。