none
Notificação No Canto Do Relogio RRS feed

  • Pergunta

  • Bom dia, eu criei uma notificação que sobe lentamente no canto do relogio. Usando um unico form, que sobe varios paineis com informações ... Porem se houver muitas notificações sobem ex: 10 paineis com suas notificações... O erro esta em: quando sobe muitas notificações consume um absurdo de processamento a cpu fica com 24% dando leg e lentidão no pc.

    Codigo

    Private Async Sub Subida(ByVal PA1 As Panel)
            Try
                Dim TotalRemove As Integer = 10
                Do While True
                    Await Task.Delay(1)
                    Try
                        If (TotalRemove > PA1.Size.Height) Then
                            Exit Do
                        Else
                            PA1.Location = New Point(0, (Me.Size.Height - TotalRemove))
                            TotalRemove += 1
                        End If
                    Catch ex As Exception
                        Exit Do
                    End Try
                Loop
                If Me.Controls.OfType(Of Panel).Count = 1 Then
                    Await Task.Delay(1000) 'tempode de close
                End If
                PA1.Dispose()
            Catch ex As Exception
            End Try
    
            Lista -= 1
    
            If Lista <= 0 Then 'hide caso nao haja mais notificaçoes
                Me.Size = New Size(0, 0)
                Me.Opacity = 0
                Me.Hide()
                Me.Visible = False
                Me.SendToBack()
                Me.TopMost = False
            End If
        End Sub
    sábado, 18 de maio de 2019 14:56