页面不包含BeginInvoke的定义

本文关键字:定义 BeginInvoke 包含 | 更新日期: 2023-09-27 18:14:03

我是新的编码和我的第一个项目之一,我必须从一个数字卡尺读取信息,并显示在一个web应用程序上的文本框。我从另一个项目中找到了代码,其他人创建了他们使用windows窗体的地方。我正在使用visual studio 2013,我正在修改他们的代码,以使用web应用程序而不是windows窗体。我遇到的麻烦是,它们有两行代码,我不理解,似乎无法找到如何修改它们以满足我的需要的答案。代码是

this.BeginInvoke(new EventHandler(delegate { SetTheText(strErg); }));
Application.DoEvents();

问题是BeginInvoke和DoEvents()都有一个错误,说它们都没有定义。是否有一种方法来修改这个web应用程序?或者有没有一种方法可以让这两种定义都知道?

对于许多人来说,这似乎是微不足道的,但我无法理解。任何帮助将非常感激!

我包含了以下using语句使用系统;使用System.Collections.Generic;使用来;使用包含;使用System.Web.UI;使用System.Web.UI.WebControls;使用System.ComponentModel;使用System.Data;使用System.Drawing;使用text;使用System.Threading;使用System.IO.Ports;使用Telerik.Web.UI;使用System.Windows.Forms;使用System.Web.Services.Protocols;使用System.Web.Services

,

页面不包含BeginInvoke的定义

这些不适用于web应用程序。

与web应用程序不同,windows应用程序需要有一个主线程或GUI线程。这意味着你必须经常使用BeginInvoke来将命令发送到该线程。 在vb6中使用

DoEvents来模拟多线程。对于现代windows应用程序来说,这真的不是必需的,尤其是现在我们有了async/await。通常人们会调用DoEvents来重新绘制屏幕,这并不适用于web应用。

总之,你不需要它们。直接调用SetTheText