C# 暂停并恢复Foreach循环
我有一个foreach循环,看起来像这样:C# 暂停并恢复Foreach循环,c#,winforms,foreach,C#,Winforms,Foreach,我有一个foreach循环,看起来像这样: foreach (var line in theCP4UnknownList.Distinct()) { var splitUnknowns = line.Split(' '); KTS_Save saveForm = new KTS_Save(splitUnknowns[0], splitUnknowns[1], splitUnknowns[3], splitUnknowns[4], openFile.FileName);
foreach (var line in theCP4UnknownList.Distinct())
{
var splitUnknowns = line.Split(' ');
KTS_Save saveForm = new KTS_Save(splitUnknowns[0], splitUnknowns[1], splitUnknowns[3], splitUnknowns[4], openFile.FileName);
saveForm.Show();
saveForm.Activate();
//This is where I would like to add a check to see if a button is clicked, if true continue the foreach loop, else wait for the button to be clicked.
}
此KTS\u Save
表单有4个文本框字段,每次foreach循环启动时(以及用户需要填写的其他空白字段),这些字段都将自动填充。但是,我只希望一次打开一个新表单,因此程序需要等待用户单击“保存”按钮,然后才能打开下一个KTS_Save
表单。。。。“保存”按钮将表单中的当前数据保存到文本文件中
是否有任何可能的方法暂停foreach循环并等待单击按钮?我怎样才能做到这一点 只需将代码更改为:
foreach (var line in theCP4UnknownList.Distinct())
{
var splitUnknowns = line.Split(' ');
KTS_Save saveForm = new KTS_Save(splitUnknowns[0], splitUnknowns[1], splitUnknowns[3], splitUnknowns[4], openFile.FileName);
saveForm.ShowDialog();
}
使用
saveForm.ShowDialog()
而不是saveForm.Show()
@JohnSaunders:C#Forms在VS.winforms中。只是好奇,但您计划将其放在一个单独的线程中,对吗?当循环等待时,此线程将挂起。@MGZero:实际上我没有挂起,Fischermaen已经回答了我下面的问题。我不敢相信这是多么容易的修复。我能问一下为什么-1?好奇。。