C#中如何挂起(暂停)一个正在进行的程序

.Net技术 码拜 10年前 (2015-05-10) 4079次浏览 0个评论
 

在C#开发的时候遇到一个问题,我的程序中有一个按钮,点击那个按钮之后程序将执行一段很长的操作,这时我是无法进行其他操作的。有没有办法在执行这段操作的时候,暂停这个操作,然后我可以执行其他操作。待到我执行其他操作完毕之后,在继续执行那个很长的操作?

你得学会异步编程,特别是UI的编程,所有操作都异步的话,就不存在你说的这种问题了。
好好去研究一下 Autoresetevent 吧
好好研究一下多线程编程吧
引用 1 楼 qldsrx 的回复:

你得学会异步编程,特别是UI的编程,所有操作都异步的话,就不存在你说的这种问题了。

我当然知道是异步,但是C#的异步跟JS的异步完全不同所以才来问怎么做。。。
顺便如果我用task的话就会出现必须STAMAIN的提示。。。

引用 2 楼 qty2008 的回复:

好好去研究一下 Autoresetevent 吧

能解决代码执行的时候按钮无反应的问题吗?

引用 3 楼 johnliuyuan 的回复:

好好研究一下多线程编程吧

会被提示必须STAMain的。。。

多线程操作UI,你需要使用委托
搜一搜:委托操作UI,代码一大堆
其实不复杂
20分
把耗时操作放到另一个线程中去就ok了

private void DoWork() {
            Thread t = new Thread(new ThreadStart(DoSomething));
            t.isbackground=true;
            t.Start();
        }
        private void DoSomething() {
            //你的耗时操作
        }

里面需要UI显示的话使用委托的方式即可,代码随便搜索就有了

那么如果我暂停之后想获得当前的结果那该如何处理(我的当前结果是保存在一个局部变量中的,我想在暂停的时候获得这个局部变量的值
20分
引用 10 楼 super_miker 的回复:

那么如果我暂停之后想获得当前的结果那该如何处理(我的当前结果是保存在一个局部变量中的,我想在暂停的时候获得这个局部变量的值

定义一个成员变量


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#中如何挂起(暂停)一个正在进行的程序
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!