代码之家  ›  专栏  ›  技术社区  ›  Evgeny

如果我通过ParameterizedThreadStart将对象传递给线程,我可以稍后访问它吗?

  •  1
  • Evgeny  · 技术社区  · 17 年前

    如果我以以下方式开始一个线程

    Thread newThread = new Thread(new ParameterizedThreadStart(MyThreadMethod));
    Object myObject = new Object();
    newThread.Start(myObject);
    

    在myObject完成任务后,我可以找出它对myObject做了什么吗?

    // at some point later
    if(newThread.ThreadState == ThreadState.Stopped)
    {
    //access my object? how?
    }
    
    2 回复  |  直到 17 年前
        1
  •  2
  •   Noon Silk    17 年前

        2
  •  1
  •   JaredPar    17 年前

    当然线程的停止绝不会破坏传递给它的对象。只要仍然存在对该对象的引用,并且该对象未被释放,它仍然可以使用。

    但是,没有内在的方法来获取传递给Thread::Start方法的值。相反,您必须保留对它的引用,可能是从线程的起始位置开始的。