【发布时间】:2011-10-27 17:13:13
【问题描述】:
我需要一些帮助来修复跨线程异常。我正在使用通常可以解决此问题的 Invoke,但由于某种原因它无法正常工作:
void paintTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Invoke(new InvalidateFromSepThreadDel(InvalidateFromSepThread));
}
delegate void InvalidateFromSepThreadDel();
void InvalidateFromSepThread()
{
TailGraph.Invalidate();
}
Invoke 上抛出异常:
$exception {"跨线程操作无效:控件'XTailGraph' 从创建它的线程以外的线程访问 on."} System.Exception {System.InvalidOperationException}
【问题讨论】:
-
试试 TailGraph.Invoke(new InvalidateFromSepThreadDel(()=>TailGraph.Invalidate()));
-
这不应该产生那个异常,支持从另一个线程调用 Control.Invalidate()。通过 Windows 和 Winforms。确保您实际上没有调用 Invalidate(true)。
标签: c# .net multithreading exception