JD2022-TU1/main/tools/apps/Packager/Tasks/ClearSignal.cs

43 lines
1.2 KiB
C#

using System.Collections.Generic;
using System.ComponentModel;
using System.IO.Pipes;
using System.Threading;
using Packager.Parameters;
namespace Packager.Tasks
{
[DisplayName(@"Clear Signal")]
[Category("Signals")]
public class ClearSignal: Task
{
[Input("Signal name", IOCardinality.Multi, IOType.String)]
public List<string> SignalName { get; set; }
public ClearSignal()
{
SignalName = new List<string>();
}
private void DoWork(string[] channelList)
{
foreach(var channel in channelList)
{
using (new NamedPipeServerStream("GameTool_" + channel, PipeDirection.In, 1, PipeTransmissionMode.Byte))
{
Thread.Sleep(200);
}
}
}
protected override void StartInternal(BuildConfiguration profile, cookerWrapper cooker, TaskIO inputs, string outputFolder)
{
var channels = inputs["SignalName"];
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += delegate { DoWork(channels.ToArray()); };
worker.RunWorkerAsync();
}
}
}