.net mvc 如何结束for循环

时间:2021-08-04 08:55:28
页面上有两个按钮,一个是开始上传excel数据到数据的按钮,一个是终止正在上传的按钮

点击开始按钮就是把excel里面的数据一条一条循环的读到数据库中

那么点击终止按钮就应该结束当前循环

有没有知道一下怎么终止操作

11 个解决方案

#1


声明一个公共变量,用于标识是否 终止操作,该标识的值由终止按钮赋值,在for中判断这个标识,如果条件成立就break出来。

#2


公共变量?静态的?,不可行!你自己尝试就知道了!

#3


那就用定时器喽。

#4


引用 3 楼 duanzi_peng 的回复:
那就用定时器喽。


可以给个具体的思路吗

#5


版主说得对 可以

#6


引用 1 楼 duanzi_peng 的回复:
声明一个公共变量,用于标识是否 终止操作,该标识的值由终止按钮赋值,在for中判断这个标识,如果条件成立就break出来。


应该可行!

#7


引用 6 楼 luzhuobin 的回复:
Quote: 引用 1 楼 duanzi_peng 的回复:

声明一个公共变量,用于标识是否 终止操作,该标识的值由终止按钮赋值,在for中判断这个标识,如果条件成立就break出来。


应该可行!


可以声明个静态变量,但是这样会导致所有人操作都是终止操作。

#8


静态变量不可靠 会有并发现象出现

#9


主线程的话,既然for循环开始了。那么你就没办法停止啦。界面都卡死了。
使用timer来处理吧。
string s = "";
        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Interval = 1000;
            timer1.Start();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Stop();
            MessageBox.Show(s);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            s += "s";
        }

#10


可以写个线程池 终止指定线程就可以了

#11


引用 7 楼 XCC5800321 的回复:
Quote: 引用 6 楼 luzhuobin 的回复:

Quote: 引用 1 楼 duanzi_peng 的回复:

声明一个公共变量,用于标识是否 终止操作,该标识的值由终止按钮赋值,在for中判断这个标识,如果条件成立就break出来。


应该可行!


可以声明个静态变量,但是这样会导致所有人操作都是终止操作。


如果是多人操作,应该是每人一个导入的线程,每个线程一个终止的变量。

#1


声明一个公共变量,用于标识是否 终止操作,该标识的值由终止按钮赋值,在for中判断这个标识,如果条件成立就break出来。

#2


公共变量?静态的?,不可行!你自己尝试就知道了!

#3


那就用定时器喽。

#4


引用 3 楼 duanzi_peng 的回复:
那就用定时器喽。


可以给个具体的思路吗

#5


版主说得对 可以

#6


引用 1 楼 duanzi_peng 的回复:
声明一个公共变量,用于标识是否 终止操作,该标识的值由终止按钮赋值,在for中判断这个标识,如果条件成立就break出来。


应该可行!

#7


引用 6 楼 luzhuobin 的回复:
Quote: 引用 1 楼 duanzi_peng 的回复:

声明一个公共变量,用于标识是否 终止操作,该标识的值由终止按钮赋值,在for中判断这个标识,如果条件成立就break出来。


应该可行!


可以声明个静态变量,但是这样会导致所有人操作都是终止操作。

#8


静态变量不可靠 会有并发现象出现

#9


主线程的话,既然for循环开始了。那么你就没办法停止啦。界面都卡死了。
使用timer来处理吧。
string s = "";
        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Interval = 1000;
            timer1.Start();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Stop();
            MessageBox.Show(s);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            s += "s";
        }

#10


可以写个线程池 终止指定线程就可以了

#11


引用 7 楼 XCC5800321 的回复:
Quote: 引用 6 楼 luzhuobin 的回复:

Quote: 引用 1 楼 duanzi_peng 的回复:

声明一个公共变量,用于标识是否 终止操作,该标识的值由终止按钮赋值,在for中判断这个标识,如果条件成立就break出来。


应该可行!


可以声明个静态变量,但是这样会导致所有人操作都是终止操作。


如果是多人操作,应该是每人一个导入的线程,每个线程一个终止的变量。