使用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();
}
}
应该有一个循环,经常检查数据库中的新记录。
您的代码似乎没有这个循环,它将迭代并检查数据库中的新记录。有没有其他代码可以调用上面显示的代码来实现这一点?如果可以的话,你也可以发布吗?