43 lines
1.2 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|