开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜