Problem using GDI+ with multiple threads (VB.NET)
I think it would be best if I just copy and pasted the code (it's very trivial).
Private Sub Main() Handles M开发者_如何学PythonyBase.Shown
timer.Interval = 10
timer.Enabled = True
End Sub
Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
e.Graphics.DrawImage(image, 0, 0)
End Sub
Private Sub tick() Handles timer.Elapsed
Using g = Graphics.FromImage(image)
g.Clear(Color.Transparent)
g.DrawLine(Pens.Red, 0 + i, 0 + i, Me.Width - i, Me.Height - i)
End Using
Me.Invalidate()
End Sub
An exception, "The object is currently in use elsewhere", is raised during the tick event. Could someone tell me why this happens and how to solve it? Thanks.
The Handles timer.Elapsed
indicates a System.Timers.Timer.
Use a System.Windows.Forms.Timer instead and your problem cannot happen anymore.
精彩评论