Кто-то из переполнения стека ответил: «Стек присоединен к потоку, поэтому, когда поток выходит из стека, он освобождается».Но как насчет открытых переменных, как они управляются после завершения потока?
НапримерОбъявленная общедоступная переменная, такая как
public partial class Form1 : Form
{
int k = 10;
private void button1_Click(object sender, EventArgs e)
{
k = k + 5;
}
}
Таким образом, при каждом нажатии кнопки 1 создается поток, который обновляет значение k и затем существует так, что в соответствии с этим стеком операторов должен быть восстановлен, а недавнее значение k должно быть потеряно, нов действительности он сохраняет это значение, и следующий щелчок кнопки изменит его сохраняемое значение на ex.от 1) 10 до 15 2) от 15 до 20 3) от 20 до 25 и т. д. *
Итак, мой вопрос, где хранятся такие глобальные переменные.Используется ли какой-либо другой стек для глобальных переменных.Также я буду использовать объект класса внутри функции для ex.например,
public function add (int a, int b)
{
int c;
clsitem objitem = new clsitem();
c=a+b + objitem.id;
retun c;
}
, что будет с объектом objitem, будет ли он храниться в стеке и восстанавливаться при выходе из потока, или он останется в куче, поскольку является объектом