110,539
社区成员
发帖
与我相关
我的任务
分享
Thread [] m_thread = new Thread[10];
//定时器定时扫描数据库中是否有需要监控的新文件夹
private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
LogHelper.Info("正在遍历机构,创建新线程");
timer.Enabled = false;// 定时器暂停
TPSDAL.DALBase dALBase = new TPSDAL.DALBase();
DataTable table= dALBase.GetDataTable(sql,null);
if (table != null && table.Rows.Count > 0)
{
int i = 0;
foreach (DataRow row in table.Rows)
{
if (m_thread.Where(t => t!=null&&t.Name == row.ItemArray[1].ToString()).ToArray().Count() > 0)
continue;
foreach (Thread t in m_thread)
{
if (t != null)
{
i++;
continue;
}
else
{
m_thread[i] = new Thread(new ThreadStart(Run));
m_thread[i].Name = row.ItemArray[1].ToString();
m_thread[i].Start();
i++;
break;
}
}
}
}
timer.Enabled = true;// 定时器开启
}
private static void Run()
{
LogHelper.Info("线程:"+ Thread.CurrentThread.Name);
Run(Thread.CurrentThread.Name);
}
private static void Run(string watcherPath)//本函数为启动监控
{
LogHelper.Info(watcherPath);
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = watcherPath;//设置要监视的文件夹:
watcher.NotifyFilter = NotifyFilters.LastWrite;
watcher.Changed += new FileSystemEventHandler(OnChanged_Thread);
watcher.Created += new FileSystemEventHandler(OnChanged_Thread);
watcher.Deleted += new FileSystemEventHandler(OnDeleted_Thread);
watcher.EnableRaisingEvents = true;
}