c# - 页面不包含 BeginInvoke 的定义

标签 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() 都有错误,表明两者都没有定义。有没有办法将其修改为网络应用程序?或者有没有办法让这两个定义都知道?

对于很多人来说这可能看起来微不足道,但我无法弄清楚。任何帮助将不胜感激!

我包含以下 using 语句 使用系统; 使用 System.Collections.Generic; 使用 System.Linq; 使用系统.Web; 使用 System.Web.UI; 使用 System.Web.UI.WebControls; 使用 System.ComponentModel; 使用系统数据; 使用系统绘图; 使用系统文本; 使用系统线程; 使用系统.IO.端口; 使用 Telerik.Web.UI; 使用 System.Windows.Forms; 使用 System.Web.Services.Protocols; 使用 System.Web.Services

;

最佳答案

这些不适用于网络应用程序。

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

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

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

关于c# - 页面不包含 BeginInvoke 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873774/

相关文章:

c# - AJAX 工具包 TabContainer : Can I capture the "Active Tab Panel Changing" event

asp.net - asp Identity 2.0 添加新角色并将用户添加到角色

git - Visual Studio 2013 RC 和源代码控制

c# - Nest 版本 6.x 中的 InMemoryConnection Elasticsearch jsonSerializationException

c# - 如何在不使用反射的情况下通过名称动态访问属性?

asp.net - 是否可以路由 Webmethod?

asp.net - 如何在asp.net网站上使用zong

简单图像处理示例中的 C++AMP 异常

c# - Unity 敌人 ai 总是向玩家上方发射子弹

c# - Stream.CopyTo 与 Librsync.PatchStream 一起使用时挂起