在C#开发的时候遇到一个问题,我的程序中有一个按钮,点击那个按钮之后程序将执行一段很长的操作,这时我是无法进行其他操作的。有没有办法在执行这段操作的时候,暂停这个操作,然后我可以执行其他操作。待到我执行其他操作完毕之后,在继续执行那个很长的操作? |
|
你得学会异步编程,特别是UI的编程,所有操作都异步的话,就不存在你说的这种问题了。
|
|
好好去研究一下 Autoresetevent 吧
|
|
好好研究一下多线程编程吧
|
|
我当然知道是异步,但是C#的异步跟JS的异步完全不同所以才来问怎么做。。。 |
|
能解决代码执行的时候按钮无反应的问题吗? |
|
会被提示必须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分 |
定义一个成员变量 |