概要
WPF中如果在UI线程中执行太多循环操作会导致UI线程卡死,所以要使用多线程
技术细节
Task.Run(() =>
{
B = 1;
for (global::System.Int32 i = 0; i < (DataGrid.Items.Count-1); i++)
Dispatcher.Invoke(() =>
{
DB = (DataGrid.Columns[1].GetCellContent(DataGrid.Items[i]) as TextBlock).Text;
TXT = (DataGrid.Columns[2].GetCellContent(DataGrid.Items[i + xunh]) as TextBlock).Text;
});
var bit = PLC1.Read(DB);
if ((bool)bit)
{
Dispatcher.Invoke(() =>
{
lstNames.Items.Add(TXT+DB); //显示报警
});
}
}
B = 0;
});