在我的 C# 程序中,我试图让面板每秒调用一次 OnPaint() 以根据当前设置进行一些图形绘制。主窗体使用 System.Timers.Timer 调用 Panel 类的更新方法,该方法以 Refresh() 调用结束。但是当我运行它时,我总是得到一个引用 Refresh 行的 InvalidOperationExcetpion 并说“跨线程操作无效:控制''从创建它的线程以外的线程访问”。它还让我参考这个 MSDN 页面:http: //msdn.microsoft.com/en-us/library/ms171728.aspx
但是该页面上的所有示例似乎都建议将新线程绑定到特定的表单事件。我正在根据计时器进行更新,而不是鼠标单击或类似事件。在单独的线程上运行刷新对我来说听起来不错,但我不确定我会怎么做(我很擅长 Java,但是是 C# 新手)。