new EventLogWindow3 with ProcessTask Instead EventLogWindow2
EventLogWindow2:
EventLog->Window.Callback->DispatcherTread->item(evli)->ObserveCollection everyone evli
EventLogWindow3:
EventLog->Window.Callback->ProcessTask.Queue.Push->Delay(1000ms)->
ProcessTask.ITEMS.Processing->DispatcherTread->ITEMS(IEnumerable<evli>)->ObserveCollection
ProcessTask SetUp
public bool IsProcessTaskInUse { get; set; }
private void SetupProcessTask()
{
if (!IsProcessTaskInUse)
{
EventLog.Evlm2(EvlResult.WARNING, EvlSubject.TECHNOLOGY, Name, Name,
MethodBase.GetCurrentMethod().Name, "ProcessTask Will NOT BE USED",
ToString());
return;
}
ProcessTask = new ProcessTask<IEventLogItem>();
ProcessTask.Init(EventLog);
// ProcessTask.Parent = this;
ProcessTask.TimeInterval = 1000;
ProcessTask.IsEveryItemPushProcessing = false;
ProcessTask.ItemsProcessingAction = InsertItemsIntoObserveCollection;
EventLog.Evlm2(EvlResult.SUCCESS, EvlSubject.TECHNOLOGY, Name, Name,
MethodBase.GetCurrentMethod().Name, "ProcessTask IS USED NOW",
ProcessTask?.ToString());
}
[XmlIgnore]
public GS.ProcessTasks.ProcessTask<IEventLogItem> ProcessTask { get; private set; }
public void Start()
{
if (IsProcessTaskInUse)
ProcessTask?.Start();
}
public void Stop()
{
if (IsProcessTaskInUse)
ProcessTask?.Stop();
}
ProcessTask.ItemsHandler:
private void InsertItemsIntoObserveCollection(IEnumerable<IEventLogItem> evlis)
{
Dispatcher.BeginInvoke((ThreadStart)(() =>
{
foreach (var evli in evlis)
EventLogItems.Insert(0, evli);
if (Capasity != 0 && CapasityLimit + Capasity <= EventLogItems.Count)
ClearSomeData(Capasity);
}
));
}
EventLogWindow2:
EventLog->Window.Callback->DispatcherTread->item(evli)->ObserveCollection everyone evli
EventLogWindow3:
EventLog->Window.Callback->ProcessTask.Queue.Push->Delay(1000ms)->
ProcessTask.ITEMS.Processing->DispatcherTread->ITEMS(IEnumerable<evli>)->ObserveCollection
ProcessTask SetUp
public bool IsProcessTaskInUse { get; set; }
private void SetupProcessTask()
{
if (!IsProcessTaskInUse)
{
EventLog.Evlm2(EvlResult.WARNING, EvlSubject.TECHNOLOGY, Name, Name,
MethodBase.GetCurrentMethod().Name, "ProcessTask Will NOT BE USED",
ToString());
return;
}
ProcessTask = new ProcessTask<IEventLogItem>();
ProcessTask.Init(EventLog);
// ProcessTask.Parent = this;
ProcessTask.TimeInterval = 1000;
ProcessTask.IsEveryItemPushProcessing = false;
ProcessTask.ItemsProcessingAction = InsertItemsIntoObserveCollection;
EventLog.Evlm2(EvlResult.SUCCESS, EvlSubject.TECHNOLOGY, Name, Name,
MethodBase.GetCurrentMethod().Name, "ProcessTask IS USED NOW",
ProcessTask?.ToString());
}
[XmlIgnore]
public GS.ProcessTasks.ProcessTask<IEventLogItem> ProcessTask { get; private set; }
public void Start()
{
if (IsProcessTaskInUse)
ProcessTask?.Start();
}
public void Stop()
{
if (IsProcessTaskInUse)
ProcessTask?.Stop();
}
ProcessTask.ItemsHandler:
private void InsertItemsIntoObserveCollection(IEnumerable<IEventLogItem> evlis)
{
Dispatcher.BeginInvoke((ThreadStart)(() =>
{
foreach (var evli in evlis)
EventLogItems.Insert(0, evli);
if (Capasity != 0 && CapasityLimit + Capasity <= EventLogItems.Count)
ClearSomeData(Capasity);
}
));
}
Комментариев нет:
Отправить комментарий