public class DataCollection : IDisposable
{
private readonly ILogOutput _logOutput;
private readonly ILogFormat _logFormat;
private readonly IScanMemory _scanMemory;
private readonly IScanPackets _scanPackets;
private readonly ScanHPPercent _scanHPPercent;
private readonly ACTLogTraceListener _logTraceListener;
private readonly OverlayData _overlayData;
private readonly DataEventProcessor _dataEventProcessor;
private readonly MonitorNetwork _monitor;
private readonly CancellationTokenSource _tokenSource = new CancellationTokenSource();
private bool disposedValue;
public DataCollection(ILogOutput logOutput, ILogFormat logFormat, IScanMemory scanMemory, IScanPackets scanPackets, ScanHPPercent scanHPPercent, OverlayData overlayData, DataEventProcessor dataEventProcessor, MonitorNetwork monitor)
{
_logOutput = logOutput;
_logFormat = logFormat;
_scanMemory = scanMemory;
_scanPackets = scanPackets;
_scanHPPercent = scanHPPercent;
_overlayData = overlayData;
_dataEventProcessor = dataEventProcessor;
_monitor = monitor;
_logTraceListener = new ACTLogTraceListener(_logOutput);
Trace.Listeners.Add(_logTraceListener);
_logOutput.WriteLine(LogMessageType.Version, DateTime.MinValue, _logFormat.FormatVersion());
}
public void StartMemory()
{
_logOutput.ScanThread.Start(_tokenSource.Token);
_scanMemory.ScanThread.Start(_tokenSource.Token);
_scanHPPercent.ScanThread.Start(_tokenSource.Token);
_overlayData.ScanThread.Start(_tokenSource.Token);
_monitor.ScanThread.Start(_tokenSource.Token);
}
//дальше всякие бесполезные методы, которые не важны и не нужны, я их удалил
}
//...
private DataCollection _dataCollection;
//...
public void InitPlugin(TabPage pluginScreenSpace, Label pluginStatusText)
{
_statusLabel = pluginStatusText;
try
{
VerifyAssemblyVersions();
ConfigureIOC();
//...
_dataCollection = _iocContainer.Resolve<DataCollection>();
_dataCollection.StartMemory();
//...
}
catch (Exception ex)
{
//...
}
}
_dataCollection?.StopMemory();
_dataCollection?.Dispose();
_dataCollection = null;
_dataCollection = _iocContainer.Resolve<DataCollection>();
Пофиг на антивирусы, они и так срабатывают - там программы, которые хукаются в процессы и читают трафик сети на низком уровне.