C#如何结束子窗体中的一个使用begininvoke创建的异步线程并关闭子窗口?
我的父窗体中有三个子窗体,其中的一个子窗体有使用BeginInvoke创建的一个异步操作,现在出现一个问题,我关闭子窗体开启其他子窗体的时候,这个子窗体的异步还在执行赋值...
我的父窗体中有三个子窗体,其中的一个子窗体有使用BeginInvoke创建的一个异步操作,现在出现一个问题,我关闭子窗体开启其他子窗体的时候,这个子窗体的异步还在执行赋值操作导致报错,我将赋值操作完善之后,子窗体可以正常关闭,但是再开启就又报错。
我现在考虑可能是我只是完善了赋值这个操作,但是后台线程还在工作并没有结束掉,所以我再开启窗体的时候才会报错,请问广大程序员朋友,异步操作要如何终止?
我的异步是调用的this.begioninvoke(()=>{}),由于要用到事件的参数e所以无法将这个事件独立出去,我该怎么做呢? 展开
我现在考虑可能是我只是完善了赋值这个操作,但是后台线程还在工作并没有结束掉,所以我再开启窗体的时候才会报错,请问广大程序员朋友,异步操作要如何终止?
我的异步是调用的this.begioninvoke(()=>{}),由于要用到事件的参数e所以无法将这个事件独立出去,我该怎么做呢? 展开
3个回答
展开全部
用EndInvoke方法终止它。 参数就是BeginInvoke方法的返回值
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-07-08
展开全部
子窗体 FormClosing 事件, 把资源释放掉。
追问
dispose么?
追答
//tieba.baidu.com/i/sys/jump?un=%C3%A8%C3%A8%B9%EC419" onclick="Stats.sendRequest('fr=tb0_forum&st_mod=pb&st_value=atlink');" onmouseover="showattip(this)" onmouseout="hideattip(this)" username="%C3%A8%C3%A8%B9%EC419" target="_blank" class="at">猫猫轨419 : 唉, 我的意思是, FormClosing 的时候, 让那个 异步的操作停下来。 如果不能立即停下来 (例如那个时候,正在访问网络), 也是设置个标志,让 异步处理完了, 就退出了, 不要去修改画面控件去了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有begininvoke就有endinvoke,他们俩个是一对的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询