开发者

Problem using GDI+ with multiple threads (VB.NET)

开发者 https://www.devze.com 2022-12-27 02:30 出处:网络
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

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

精彩评论

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