我有一个通过Thread.Start执行方法的程序。该方法有一个我想访问的返回值。有没有办法做到这一点?这里有一个采样...从Thread.Start()的代理函数访问返回值
var someValue = "";
Thread t = new Thread(delegate() { someValue = someObj.methodCall(); });
t.Start();
while (t.isAlive) Thread.Sleep(1000);
// Check the value of someValue
所以一旦while循环结束时,someValue中应设置 - 而是因为它在另一个线程中执行它不会设置。有一种简单的方法可以访问它吗?
您是否尝试过将''volatile'声明为someValue? – 2009-12-21 20:00:28
尽管这种同步技术很奇怪,但它应该与volatile修饰符一起使用。 +1为匿名 – 2009-12-21 20:07:00