Van*_*nel 2 c# graphics multithreading winforms
我正在开发一个Windows Mobile应用程序(Compact Framework 2.0 SP1),这个代码让我产生了一个错误:
public Image Imagen
{
get
{
return imagen;
}
set
{
imagen = value;
this.Invalidate();
}
}
代码是从新线程调用的.我试图使用**InvokeRequired来解决:
public Image Imagen
{
get
{
return imagen;
}
set
{
imagen = value;
if (this.InvokeRequired)
this.Invoke(this.Invalidate);
else
this.Invalidate();
}
}
但这行.Invoke(this.Invalidate); 不编译.我该如何解决这个问题?第一个错误是您可以与在另一个线程上创建的控件进行交互.
谢谢!
Invalidate不需要调用.
invalidate仅包括由主线程处理的paint消息以及其余的待处理消息.但是,当您调用invalidate并且此线程未更改控件时,不会执行绘制,因此您无需使用它进行调用.
如果您需要确保刷新控件,可能无效是不够的,您也需要调用更新.
| 归档时间: |
|
| 查看次数: |
4939 次 |
| 最近记录: |