C#如何结束子窗体中的一个使用begininvoke创建的异步线程并关闭子窗口?

我的父窗体中有三个子窗体,其中的一个子窗体有使用BeginInvoke创建的一个异步操作,现在出现一个问题,我关闭子窗体开启其他子窗体的时候,这个子窗体的异步还在执行赋值... 我的父窗体中有三个子窗体,其中的一个子窗体有使用BeginInvoke创建的一个异步操作,现在出现一个问题,我关闭子窗体开启其他子窗体的时候,这个子窗体的异步还在执行赋值操作导致报错,我将赋值操作完善之后,子窗体可以正常关闭,但是再开启就又报错。
我现在考虑可能是我只是完善了赋值这个操作,但是后台线程还在工作并没有结束掉,所以我再开启窗体的时候才会报错,请问广大程序员朋友,异步操作要如何终止?
我的异步是调用的this.begioninvoke(()=>{}),由于要用到事件的参数e所以无法将这个事件独立出去,我该怎么做呢?
展开
 我来答
lrh3321
2015-07-08 · TA获得超过2183个赞
知道大有可为答主
回答量:2296
采纳率:75%
帮助的人:2124万
展开全部
用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 的时候, 让那个  异步的操作停下来。  如果不能立即停下来 (例如那个时候,正在访问网络), 也是设置个标志,让 异步处理完了, 就退出了, 不要去修改画面控件去了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shuyue_888
2015-07-22 · TA获得超过417个赞
知道小有建树答主
回答量:406
采纳率:84%
帮助的人:312万
展开全部
有begininvoke就有endinvoke,他们俩个是一对的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式