// 一次性获取子控件
var controlsTemp = new List<Control>(flowLayoutPanel1.Controls.Cast<Control>());
flowLayoutPanel1.Controls.Clear();
// 然后统一释放资源
flowLayoutPanel1.BeginInvoke(new Action(() => {
foreach (var ctrl in controlsTemp)
{
ctrl.Dispose();
}
}));