本文介绍了如何在C#中暂停和恢复foreach循环?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要为winform应用程序制作暂停按钮和恢复按钮。
我发现ManualResetEvent是创建它们的简单方法。
是吗?
我在我的源代码中添加了ManualResetEvent但暂停foreach循环无效。
我缺少什么?
请给我建议
谢谢
Hi,
I need to make pause button and resume button for winform application.
And I found ManualResetEvent is easy way to create them.
Is that right?
I added ManualResetEvent in my source code but pausing the foreach loop is not working.
What am I missing?
Please give me advice
Thank you
static ManualResetEvent mr = new ManualResetEvent(true);
public Form1()
{
InitializeComponent();
}
private void btn_start_Click(object sender, EventArgs e)
{
Thread _thread = new Thread(work);
_thread.Start();
}
private void work()
{
foreach (TreeNode node in treeview1.Nodes)
{
mr.WaitOne();
if (node.Checked)
{
some code
}
}
}
private void btn_pause_Click(object sender, EventArgs e)
{
mr.Reset();
}
private void btn_resume_Click(object sender, EventArgs e)
{
mr.Set();
}
我的尝试:
我试过把MenaulResetEvent.waitone();在循环结束时。
但仍然没有工作
What I have tried:
I have tried put the MenaulResetEvent.waitone(); at the end of loop.
But still not working
推荐答案
这篇关于如何在C#中暂停和恢复foreach循环?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!