private static void DataSetTableColumnChanged(object sender, DataColumnChangeEventArgs e) { new Thread(() => { if (e.Column.ColumnName != "ONOFF") { lock (SaveFile) { SaveFile.SaveFile = 1; } } }).Start(); string IOName = e.Row["IOName"] as string; if (IOName != "") { DataTable dt = sender as DataTable; string cn = dt.DataSet.DataSetName; string cln = e.Column.ColumnName; string content = ""; if ("CheckStatus" == cln) { checkStatusType ct = (checkStatusType)e.Row[e.Column.ColumnName]; content = Enum.GetName(typeof(checkStatusType), ct); } else { content = e.Row[e.Column.ColumnName] as string; } DateTime now = DateTime.Now; IODataChangeContainer id = new IODataChangeContainer(now, cn, cln, IOName, content); AddChangeDict(id); } }
private static void AddChangeDict(IODataChangeContainer id) { RemoveDuplication(id); lock (dataUpdateList) { dataUpdateList.Add(id); } }
private static void RemoveDuplication(IODataChangeContainer id) { List <IODataChangeContainer> tp; lock (dataUpdateList) { tp = new List <IODataChangeContainer>(dataUpdateList); } var d = from dd in tp where (dd.cname == id.cname) && (dd.type == id.type) && (dd.iname == id.iname) select dd.time; lock (dataUpdateList) { foreach (DateTime dt in d) { dataUpdateList.Remove(dataUpdateList.Find(o => o.time == dt)); } } }