C# 事件是否在另一个线程中运行?(.Net精简框架)
我正在用.Net Compact Framework 2.0 SP2和C开发Windows Mobile 5.0或更高版本 当我尝试在处理事件的方法上访问控件的宽度时,它会引发以下异常: 必须使用Invoke与在单独线程上创建的控件进行交互 此方法是否在另一个线程中运行C# 事件是否在另一个线程中运行?(.Net精简框架),c#,winforms,events,windows-mobile,multithreading,C#,Winforms,Events,Windows Mobile,Multithreading,我正在用.Net Compact Framework 2.0 SP2和C开发Windows Mobile 5.0或更高版本 当我尝试在处理事件的方法上访问控件的宽度时,它会引发以下异常: 必须使用Invoke与在单独线程上创建的控件进行交互 此方法是否在另一个线程中运行 谢谢大家! 事件在触发它的线程上运行。因此,如果事件是在与创建控件的线程不同的线程上触发的,那么它将在不同的线程中运行,是的。事件将在触发它的线程上运行。因此,如果事件是在创建控件的线程之外的其他线程上触发的,那么它将在不同的线
谢谢大家! 事件在触发它的线程上运行。因此,如果事件是在与创建控件的线程不同的线程上触发的,那么它将在不同的线程中运行,是的。事件将在触发它的线程上运行。因此,如果事件是在创建控件的线程之外的其他线程上触发的,那么它将在不同的线程中运行,是的。是的,未创建控件的线程无法访问控件。好吧,更准确地说,如果你真的想要的话,他们可以,但是你会冒着应用程序因死锁而随机锁定的风险 要解决此问题,请使用Invoke或BeginInvoke方法为UI线程设置回调 e、 g
是的,未创建控件的线程无法访问控件。好吧,更准确地说,如果你真的想要的话,他们可以,但是你会冒着应用程序因死锁而随机锁定的风险 要解决此问题,请使用Invoke或BeginInvoke方法为UI线程设置回调 e、 g
private void HandleSomeEvent(object sender, EventArgs e)
{
if(textBox1.InvokeRequired)
{
textBox1.BeginInvoke(new EventHandler(HandleSomeEvent), new object[]{sender, e});
}
else
{
textBox1.Text = "WIN!";
}
}