加上线程的事件就不能正常运行,怎么会呢?
namespace 事件驱动01
{
public partial class Form1 : Form
{
public event EventHandler doEvents;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
runEvents();
}
private void Form1_Load(object sender, EventArgs e)
{
//加上多线程操作时就不能执行
System.Threading.Thread th2;
th2 = new Thread(new ThreadStart(runEvents));
th2.Start();
}
private void runEvents()
{
myEvent eX = new myEvent("Ok");
if (doEvents != null)
{
doEvents(this, eX);
}
}
}
public class myEvent : EventArgs
{
public string EventName { get; set; }
public myEvent(string prName )
{
this.EventName = prName;
}
}
}
}
}
}
namespace 事件驱动01
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form2());
}
}
}
不使用th1,可以执行,加上就不能执行,什么原因呢 多线程
[解决办法]
谁知道你要如何处理 doEvents?
是不是帖子中间丢了一段代码?
如果处理程序在子线程中执行的,如果要访问控件,记得使用 Ctrl.Invoke 或者 Ctrl.BeginInvoke。