gpt4 book ai didi

c# - 有 Form.Invoke() 方法吗?

转载 作者:行者123 更新时间:2023-11-30 15:11:04 26 4
gpt4 key购买 nike

我是多线程(以及 C#)的新手,所以我希望这不是显而易见的:

在我的表单(WinForms 应用程序,.NET 2.0)中,我订阅了另一个对象引发的事件,并且在处理此事件时我希望更改我的表单上的几个控件。由于此事件是在主 (UI) 线程之外的另一个线程中引发的,所以我想将调用编码到表单的线程。

我知道我可以在我想要更改的任何控件上使用 Control.Invoke() 方法,但由于其中有几个我不希望这样做。

在网上搜索时,我发现 Form 类本身提供了一个 Invoke() 方法。参见示例: http://marioschneider.blogspot.com/2008/04/invoke-methode-fr-multithread.html(抱歉,因为我是新用户,我似乎不能发布超过一个链接。如果可能的话,我会添加更多链接作为评论。)

这样,我就可以包装我的事件处理程序,然后像在 UI 线程上调用它一样使用它。但是,这似乎没有在我的环境中定义,并且在 MSDN 的 System.Windows.Forms.Form 文档中也没有它的迹象。

.NET-Framework 中是否存在此方法?我发现很难相信 Form 不会提供这样的方法,因为它使用与其上的控件相同的消息队列。 (或者我在这里遗漏了什么?)

最佳答案

There's the Invoke methodForm 上,因为它派生自 Control

关于c# - 有 Form.Invoke() 方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2788235/

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