2

我是编码新手,对于我的第一个项目,我必须从数显卡尺读取信息并将其显示在 Web 应用程序的文本框中。我从另一个项目中找到了一些其他项目的代码,这些代码是在他们使用 Windows 窗体的地方创建的。我正在使用 Visual Studio 2013,并且正在修改他们的代码以使用 Web 应用程序而不是 Windows 窗体。我遇到的麻烦是他们有两行我不理解的代码,并且似乎找不到如何修改它们以满足我的需要的答案。代码是

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

问题是 BeginInvoke 和 DoEvents() 都有一个错误,说两者都没有定义。有没有办法将其修改为 Web 应用程序?或者有没有办法让这两个定义都知道?

对许多人来说,这似乎微不足道,但我无法弄清楚。任何帮助将不胜感激!

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

;

4

1 回答 1

3

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

与 Web 应用不同,Windows 应用需要有主线程或 GUI 线程。这意味着您经常必须使用 BeginInvoke 将命令编组到该线程上。

DoEvents 在 VB 6 中用于模拟多线程。对于现代 Windows 应用程序来说确实没有必要,尤其是现在我们有 async/await。通常人们调用 DoEvents 来重新绘制屏幕,​​这不适用于 Web 应用程序。

所以总而言之,你不需要它们。直接调用 SetTheText 即可。

于 2014-07-21T20:19:55.987 回答