public struct LocalTLS : IDisposable
{
public byte[] bArr;
public string str;
public LocalTLS(int k)
{
str = "Labamba";
bArr = new byte[20000];
}
public void Dispose()
{
MessageBox.Show("In Dispose");
//Thread.FreeNamedDataSlot("jaja");
int k = 90;
k += 90;
}
}
private void buttonTLS_retreive_Click(object sender, EventArgs e)
{
LocalTLS lts = new LocalTLS(1);
}
点击事件返回后,我期望Dispose调用,但从来没有发生过,可以有人解释。我不想执行任何手动步骤,如调用Dispose或使用。我希望自动发生。ValueType未收集垃圾?
非常感谢您的回答,我想实现一个LocalDataStoreSlot的类,它将自动释放Slot并超出范围,如注释代码所示。这将使开发者免于记忆到 调用处理,其中实际的FreeNamedDataSlot(...)发生。好像这是不可能的
这是我唯一的后续问题:你知道何时以及如何使用'IDisposable'吗? [这是一个链接,以防万一](http://msdn.microsoft.com/en-us/library/system.idisposable.aspx) –
你能解释为什么你期望在事件返回后调用Dispose方法吗? –
*我期待Dispose调用,但从未发生过* - 预期的行为,您的期望完全错误。 = D – Sinatr