Проблема использования GDI + с несколькими потоками (VB.NET) - PullRequest
3 голосов
/ 18 апреля 2010

Я думаю, что было бы лучше, если бы я просто скопировал и вставил код (это очень тривиально).

Private Sub Main() Handles MyBase.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

Исключение, "объект в настоящее время используется в другом месте", возникает во время галочкисобытие.Может кто-нибудь сказать мне, почему это происходит и как это решить?Спасибо.

1 Ответ

3 голосов
/ 18 апреля 2010

Handles timer.Elapsed указывает System.Timers.Timer.

Используйте взамен System.Windows.Forms.Timer, и ваша проблема больше не может возникнуть.

...