如何从一个类同时运行两次函数?C#

如何从一个类同时运行两次函数?C#,c#,C#,运行时类变量之间发生冲突 private myClass[] arrayms = new myClass[5]; foreach (myClass ms in arrayms) { if (ms.ScheduleState) Task.Factory.StartNew(() => ms.Start()); } 我得到了一个文本摘要,类是对象。程序运行时没有错误,但只有冲突变量 我不理解“冲突变量”。但其余部分似乎与我在之前的评论中所描述的相符。i、 e.调用foreach时

运行时类变量之间发生冲突

private myClass[] arrayms = new myClass[5];

foreach (myClass ms in arrayms) {
  if (ms.ScheduleState)
    Task.Factory.StartNew(() => ms.Start());
}

我得到了一个文本摘要,类是对象。程序运行时没有错误,但只有冲突变量

我不理解“冲突变量”。但其余部分似乎与我在之前的评论中所描述的相符。i、 e.调用
foreach
时,数组为空。所以,也许这个:

for (int i=0; i < ms.Length; i++) {
  arrayms[i] = new MyClass();
}

// ScheduleState must somehow get set, then:

foreach (myClass ms in arrayms) {
  if (ms.ScheduleState)
    Task.Factory.StartNew(() => ms.Start());
}

结束编辑

如何从一个类中同时从一个函数运行多个?C# 运行时_StartTask()myClass变量和日志结果之间存在冲突

private myClass[] arrayms = new myClass[5];
public void _TasksClassCreator()
{
     foreach (var ms in arrayms )
     {
          ms.ScheduleName = SName;
          .
          .
          .
     }
}
public void _StartTask()
{
    foreach (myClass ms in arrayms) 
    {
      if (ms.ScheduleState)
        Task.Factory.StartNew(() => ms.Start());
    }
}

public sealed class myClass
{
    public void Start()
    {
        _TBTask();
    }
    private void _TBTask()
    {
         while(true)
         {
              ...//Conflict here
              // this function always running and reporting result...
              //log here
         }
    }

    private string _ScheduleName;

    public string ScheduleName
    {
        get
        {
            return _ScheduleName;
        }
        set
        {
            _ScheduleName = value;
        }
        .
        .
        .
    }
}

你的错误是什么?另外,您创建了一个包含5个“插槽”的数组,但在调用
foreach
之前,似乎没有在其中放入任何对象。所以,
foreach
只是因为
arrayms
是空的而失败了。我得到了一个文本摘要,类是对象。程序运行时没有错误,但只有冲突变量。我为我的语言道歉;)当我们从myclass类多次执行starttask函数时,我的类变量将受到干扰。
Task.Factory.StartNew(…)
?它的名称
StartNew
意味着创建并启动了一个新对象。但会传递启动现有对象的匿名方法。那么我们实际上是从两件事开始的吗?
private myClass[] arrayms = new myClass[5];
public void _TasksClassCreator()
{
     foreach (var ms in arrayms )
     {
          ms.ScheduleName = SName;
          .
          .
          .
     }
}
public void _StartTask()
{
    foreach (myClass ms in arrayms) 
    {
      if (ms.ScheduleState)
        Task.Factory.StartNew(() => ms.Start());
    }
}

public sealed class myClass
{
    public void Start()
    {
        _TBTask();
    }
    private void _TBTask()
    {
         while(true)
         {
              ...//Conflict here
              // this function always running and reporting result...
              //log here
         }
    }

    private string _ScheduleName;

    public string ScheduleName
    {
        get
        {
            return _ScheduleName;
        }
        set
        {
            _ScheduleName = value;
        }
        .
        .
        .
    }
}