gpt4 book ai didi

c# - 从后台线程持续更新表单

转载 作者:行者123 更新时间:2023-11-30 18:42:39 24 4
gpt4 key购买 nike

假设我在异步套接字上收到了一些信息(因此退出了一些后台线程),不断更新表单。我如何才能安全地更新表单内容,以避免在关闭表单时有时抛出的 ObjectDisposedException?

在更新操作(在后台线程上进行)中,我检查表单的属性 IsDisposed,但这没有用,因为 UI 线程有时会在检查之后和更新操作之前立即处理表单,从而导致抛出异常(当我关闭表格时)我尝试在表单的“onScreenFormClosed”处理程序中对表单对象和更新操作使用锁定,以确保不会同时执行这些操作,但这会阻塞 UI 线程。

我什至尝试在 UI 线程上运行更新操作,但没有用,因为在表单上调用 Invoke(...) 仍然抛出 ObjectDisposedException 。

最佳答案

你能改变生成后台线程的类吗?我会让他们注意表单上的适当事件,并检查表单是否已在更新信息开始时关闭。

C# 使用事件和委托(delegate)来实现观察者和可观察模式,但是更新多少表单并不重要,只有仍在观察的表单才会更新。

http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/11b46013-089b-44ca-907a-6dab05c5b454/

关于c# - 从后台线程持续更新表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5402817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com