gpt4 book ai didi

C# 线程和 this.Invalidate()

转载 作者:行者123 更新时间:2023-11-30 19:22:47 25 4
gpt4 key购买 nike

我正在开发一个 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();
}
}

但是 this.Invoke(this.Invalidate); 行无法编译。我该如何解决这个问题?第一个错误是您可以与在另一个线程上创建的控件进行交互。

谢谢!

最佳答案

Invalidate 不需要调用。

invalidate 仅包含一条由主线程处理的绘制消息以及其余未决消息。但是当您调用 invalidate 时绘制并没有完成,并且该线程没有更改控件,因此您不需要为其使用调用。

如果你需要确保控件被刷新,也许invalidate还不够,你还需要调用update。

关于C# 线程和 this.Invalidate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/607646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com