我在Windows应用程序中有一个按钮,它从一个Thread创建一个新实例并开始调用一个方法,该方法获取一些文件并将其内容插入到数据库中。 问题是我总是注意到第一个文件被插入到db中两次,但它与其他文件一起正常工作,尽管它们都在同一个循环中。
private Thread thrd;
thrd = new Thread(FetchNewMessages);
_status = true;
thrd.Start();
private void FetchNewMessages()
{
try
{
WriteUiLog("Start fetching messages...");
while (_status)
{
try
{
var dir = new DirectoryInfo(txtQueue.Text);
var allFiles = dir.GetFiles("*.txt", SearchOption.AllDirectories);
if (allFiles.Length == 0)
{
continue;
}
foreach (var fil in allFiles)
{
if (_status)
{
try
{
// insert into db
}
catch (Exception iEx)
{
}
}
}
}
catch (Exception ex)
{
}
}
}
catch (Exception ex)
{
}
}