Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 暂停并恢复Foreach循环_C#_Winforms_Foreach - Fatal编程技术网

C# 暂停并恢复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循环,看起来像这样:

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?好奇。。