PDA

Просмотр полной версии : Проблема задания выхода скрипта C# из task



Igor V
19.09.2017, 10:03
Возникла проблема при работе со скриптом: была написана функция, которая идет в task. Однако, при вызове
в task
var elem=HostFB.OutputGroup.GetPin("Параметр2").TreePinHlp;
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").TreePinHlp;
if(elem!=null)
{
elem.AddAssignValueTask(5,null);
}
}

Тоже самое и касается использования thread, если использовать join() и конструкцию через HostFB то поток намертво встает. Если напрямую внутри задавать как например Параметр2=54 то все нормально.