我有具有 2 个按钮的 c# 应用程序。首先有运行 10k 次的 for 循环。每个循环代码执行需要 1 秒才能完成。
for(int i=0;i<10000;i++){
//My running code take 1 sec for each loop
}
Run Code Online (Sandbox Code Playgroud)
有时我想通过单击另一个按钮“停止”来停止此循环/执行,但它不起作用。请建议我什么解决方案。
在UI Thread(处理所有 UI 事件的线程 - 例如按钮单击)中运行长时间运行的操作不是一个好习惯。你应该在另一个循环中运行你的循环。
您可以使用Task Parallel Library (TPL):
private bool stopIt = false;
private void Form1_Load(object sender, EventArgs e)
{
Task task = Task.Factory.StartNew(() =>
{
for (int i = 0; i < 1000000000; i++)
{
if (!stopIt)
{
Console.WriteLine("Here is " + i);
}
else
{
break;
}
}
});
}
private void button1_Click(object sender, EventArgs e)
{
stopIt = true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1442 次 |
| 最近记录: |