/// <summary> /// 刷新dataGridTags的Tag数据 /// </summary> /// <param name="groupName">groupName</param> private void QueryTagsRecord(string groupName) { if (groupName == "") { return; } List <Tag> tags = new List <Tag>(); foreach (DataGridViewRow row in dataGridTags.Rows) { Tag bi = new Tag(); bi.OpcTagName = row.Cells["OpcTagName"].Value.ToString(); bi.TagName = row.Cells["TagName"].Value.ToString(); bi.TimeStamps = DateTime.Now; bi.Value = ""; bi.Qualities = ""; bi.Message = ""; tags.Add(bi); } //异步方式获取返回数据集 //兼容4.0 //await Task.Run(() => //{ // client.GetTagValuesFromGroup(ref tags, groupName); //}); Task.WaitAny(Task.Run(() => { client.GetTagValuesFromGroup(ref tags, groupName); })); //dataGridTags.DataSource = tags.Select(p => new { p.TagName, p.OpcTagName, p.TimeStamps, p.Qualities, p.Value, p.Message }).ToList(); ; for (int i = 0; i < tags.Count; i++) { dataGridTags.Rows[i].Cells["OpcTagName"].Value = (tags[i]).OpcTagName; dataGridTags.Rows[i].Cells["TagName"].Value = (tags[i]).TagName; dataGridTags.Rows[i].Cells["DataType"].Value = (tags[i]).DataTypeName; dataGridTags.Rows[i].Cells["Value"].Value = (tags[i]).Value; dataGridTags.Rows[i].Cells["Qualities"].Value = (tags[i]).Qualities; dataGridTags.Rows[i].Cells["TimeStamps"].Value = (tags[i]).TimeStamps; dataGridTags.Rows[i].Cells["Message"].Value = (tags[i]).Message; } }