Возникла проблема при работе со скриптом: была написана функция, которая идет в task. Однако, при вызове
в task
var elem=HostFB.OutputGroup.GetPin("Параметр2").TreePi nHlp;
if(elem!=null)
{
elem.AddAssignValueTask(5,null);
}
task всегда остается в состоянии "Running" и виснет на task.wait();
using System;
using MasterSCADA.Script.FB;
using MasterSCADA.Hlp;
using FB;
using FB.FBAttributes;
using System.Linq;
using System.Threading.Tasks;
using System.Threading;
[FBRetain]
public partial class ФБ : ScriptBase
{
public override void Start()
{
Task task = Task.Factory.StartNew(() => LinePerform());
Thread.Sleep(3000);
task.Wait();
Параметр1=Convert.ToString(task.Status);
}
public void LinePerform()
{
var elem=HostFB.OutputGroup.GetPin("Параметр2").TreePi nHlp;
if(elem!=null)
{
elem.AddAssignValueTask(5,null);
}
}
Тоже самое и касается использования thread, если использовать join() и конструкцию через HostFB то поток намертво встает. Если напрямую внутри задавать как например Параметр2=54 то все нормально.