页面不包含BeginInvoke的定义

时间:2014-07-21 20:08:06

标签: c# asp.net visual-studio-2013 begininvoke doevents

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

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

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

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

我有以下使用声明     使用系统;     使用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

1 个答案:

答案 0 :(得分:3)

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

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

在VB 6中使用DoEvents来模拟多线程。现在的Windows应用程序真的不是必需的,特别是现在我们有async / await。通常人们会调用DoEvents来重新绘制屏幕,​​这不适用于网络应用。

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