如果您对这篇小文感兴趣的话,或许您在编程中时候碰到过以下类似的异常提示:1、线程间操作无效: 从不是创建控件“X”的线程访问它。(X是控件名称)2、"在该控件上执行的操作正从错误的线程调用。使用 Control.Invoke 或 Control.BeginInvoke 封送到正确的线程才能执行此操作。"看到这种提示,极有可能是跨线程访问控件造成的。举个小例子,
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
public Form1(){
InitializeComponent();
}
public delegate void
在该控件上执行的操作正从错误的线程调用。使用 Control.Invoke 或 Control.BeginInvoke 封送到正确的线程才能执行此操作。(以解决)
最新推荐文章于 2020-02-04 13:48:35 发布
当遇到'在该控件上执行的操作正从错误的线程调用'的错误,通常是因为尝试在非UI线程中访问Windows Forms控件。为了解决这个问题,可以使用Control.Invoke或Control.BeginInvoke来确保操作在正确的线程中执行。例如,创建一个委托并在需要访问控件的线程中调用Invoke方法,如在OpenDialogOnOtherThread方法中所示。错误代码则直接在非UI线程中打开了对话框,导致了错误。
摘要由CSDN通过智能技术生成