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

时间:2009-09-10 00:20:19

标签: c# multithreading parameterized

如果我以下列方式开始一个帖子

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

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

// at some point later
if(newThread.ThreadState == ThreadState.Stopped)
{
//access my object? how?
}

2 个答案:

答案 0 :(得分:2)

你递给对象。因此,只需将您所携带的对象存储在您启动的线程旁边。不过要小心你用它做什么,否则你可能遇到有趣的线程问题。

答案 1 :(得分:1)

不确定。线程的停止决不会破坏传递给它的对象。只要仍然存在对象的引用,并且它没有被处理掉,它仍然可以使用。

然而,没有固有的方法来获取传递给Thread :: Start方法的值。相反,你必须保持对它的引用,可能是从你启动线程的地方开始。