Читаю тут,
вот такую статейкуАвтор(ы): Joseph Albahari
Дата: 24.03.2007
Подробно рассматривается работа с потоками — запуск, завершение, прерывание, блокировки, синхронизация, контексты синхронизации, особенности взаимодействия с апартаментами, а также потоковые возможности .NET — потоковые таймеры, пулы потоков, BackgroundWorker, асинхронные методы и делегаты.
В статье использован материал из книги Joseph Albahari, Ben Albahari "C# 3.0 in a Nutshell" — http://www.oreilly.com/catalog/9780596527570/
и возник у один вопрос. В статье приводится пример:
class ThreadTest
{
bool upper;
static void Main()
{
ThreadTest instance1 = new ThreadTest();
instance1.upper = true;
Thread t = new Thread(instance1.Go);
t.Start();
ThreadTest instance2 = new ThreadTest();
instance2.Go(); // Запуск в главном потоке - с upper=false
}
void Go(){ Console.WriteLine(upper ? "HELLO!" : "hello!"); }
Вопрос в том, что происходит с переменной upper при создании потока? Куда она помещается в кучу, доступную сразу всем потомкам процесса или в стэк потока? И вообще какие переменные помещаются в стэк потока?