1

如果我以下列方式启动一个线程

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?
}
4

2 回答 2

2

你把东西递给了它。因此,只需将您手上的对象存储在您启动的线程旁边。不过要非常小心你用它做什么,否则你可能会遇到有趣的线程问题。

于 2009-09-10T00:22:33.803 回答
1

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

但是,没有固有的方法可以将传递给 Thread::Start 方法的值取回。相反,您必须保留对它的引用,可能是从您开始线程的地方。

于 2009-09-10T00:25:44.960 回答