Files
effector.plugin.lib/Effector.Plugin.Lib/ProcessManager/ProcessManagerVM.vb
T
Emmanuele Sassi 139b805055 - primo commit
2025-02-07 12:32:14 +01:00

76 lines
2.3 KiB
VB.net

Imports System.Windows.Threading
Imports System.Collections.ObjectModel
Public Class ProcessManagerVM
Inherits VMBase
Private m_nTaskQuantity As Integer = 3
Private m_UpdateDataTimer As New DispatcherTimer
Public ReadOnly Property UpdateDataTimer As DispatcherTimer
Get
Return m_UpdateDataTimer
End Get
End Property
Private m_ExecProcessManager As ExecProcessManager
Public ReadOnly Property ExecProcessManager As ExecProcessManager
Get
Return m_ExecProcessManager
End Get
End Property
Public ReadOnly Property ArgumentsQueue As String
Get
Return m_ExecProcessManager.ArgumentsQueueCount.ToString()
End Get
End Property
Public ReadOnly Property ResultQueue As String
Get
Return m_ExecProcessManager.ArgumentsResultQueueCount.ToString()
End Get
End Property
Public ReadOnly Property ThreadList As ObservableCollection(Of ThreadData)
Get
If Not IsNothing(m_ExecProcessManager.ThreadDataList) Then
Return New ObservableCollection(Of ThreadData)(m_ExecProcessManager.ThreadDataList.ToList())
Else
Return New ObservableCollection(Of ThreadData)
End If
End Get
End Property
Private m_dProgress_Value As Double
Public ReadOnly Property dProgress_Value As Double
Get
Return (m_dProgress_Maximum - m_nTaskQuantity - m_ExecProcessManager.ArgumentsQueueCount) '/ m_dProgress_Maximum * 100
End Get
End Property
Private m_dProgress_Maximum As Double
Public ReadOnly Property dProgress_Maximum As Double
Get
Return m_dProgress_Maximum
End Get
End Property
Sub New(ExecProcessManager As ExecProcessManager)
m_ExecProcessManager = ExecProcessManager
m_dProgress_Maximum = m_ExecProcessManager.ArgumentsQueueCount + m_nTaskQuantity
m_UpdateDataTimer.Interval = New TimeSpan(0, 0, 1)
AddHandler m_UpdateDataTimer.Tick, AddressOf UpdateDataTimer_Tick
m_UpdateDataTimer.Start()
End Sub
Private Sub UpdateDataTimer_Tick(sender As Object, e As EventArgs)
NotifyPropertyChanged(NameOf(ArgumentsQueue))
NotifyPropertyChanged(NameOf(ResultQueue))
NotifyPropertyChanged(NameOf(ThreadList))
NotifyPropertyChanged(NameOf(dProgress_Value))
End Sub
End Class