C# 可识别
我正在努力使一个班级适应刚刚结束的工作,我无法解决这个问题。 我的问题是如何识别要关闭的句柄//CloseHandle(句柄)。 我的问题是我不能适应下面的代码C# 可识别,c#,.net,idisposable,C#,.net,Idisposable,我正在努力使一个班级适应刚刚结束的工作,我无法解决这个问题。 我的问题是如何识别要关闭的句柄//CloseHandle(句柄)。 我的问题是我不能适应下面的代码 for (Int32 i = 0; i < temp_items.Count; i++) { string conj_itens = temp_itens[i].ToString(); ContarSuporte cs= new ContarSuporte(matriz_bin,strExpr)
for (Int32 i = 0; i < temp_items.Count; i++)
{
string conj_itens = temp_itens[i].ToString();
ContarSuporte cs= new ContarSuporte(matriz_bin,strExpr);
_cont = cs.Suporte;
If (_cont>100)
{
list.add(conj_itens);
}
}
public class ContarSuporte: IDisposable
{
private int _cont;
private bool disposed = false;
private IntPtr handle;
public ContarSuporte()
{
}
public ContarSuporte(DataTable matriz_binaria, string strExpr)
{
int c = matriz_binaria.Rows.Count;
this._cont = (int)(matriz_binaria.Compute("COUNT(TID)", strExpr));
}
~ContarSuporte()
{
Dispose(false);
}
public void Dispose()
{
//GC.Collect();
Dispose(true);
GC.SuppressFinalize(this);
// GC.Collect();
}
private void Dispose(bool disposing)
{
if (!this.disposed)
{
if (disposing)
{
//this.Dispose();
}
//CloseHandle(handle);
handle = IntPtr.Zero;
}
disposed = true;
}
public int Suporte
{
get
{
return _cont;
}
set
{
_cont =value;
}
}
for(Int32 i=0;i100)
{
列表。添加(连接);
}
}
公共类扭曲:IDisposable
{
私人内部控制;
私有布尔=假;
私有IntPtr句柄;
公共扭曲
{
}
公共扭曲(数据表matriz_binaria,字符串strExpr)
{
int c=matriz_binaria.Rows.Count;
这个._cont=(int)(matriz_binaria.Compute(“COUNT(TID)”,strExpr));
}
~contarsuport()
{
处置(虚假);
}
公共空间处置()
{
//GC.Collect();
处置(真实);
总干事(本);
//GC.Collect();
}
私有无效处置(bool处置)
{
如果(!this.disposed)
{
如果(处置)
{
//这个。Dispose();
}
//关闭手柄(手柄);
handle=IntPtr.Zero;
}
这是真的;
}
公共内部支持
{
得到
{
返回(续);
}
设置
{
_cont=数值;
}
}
您没有显示任何实际使用句柄的代码。您真的确定需要实现IDisposable
并首先拥有句柄吗?您试图使用哪种非托管资源
您可能只是遵循了您在其他地方看到的使用句柄的模式吗?您应该只在实际需要时实现
IDisposable
,而现在实现终结器应该非常少见(因为您可以使用SafeHandle
而不是IntPtr
来处理句柄).您没有显示任何实际使用句柄的代码。是否确实需要实现IDisposable
并首先拥有句柄?您试图使用的非托管资源是什么
您可能只是遵循了您在其他地方看到的使用句柄的模式吗?您应该只在实际需要时实现
IDisposable
,而现在实现终结器应该非常少见(因为您可以使用SafeHandle
而不是IntPtr
来处理句柄).您试图关闭哪个句柄?我看不到任何分配句柄的内容
此外-在许多情况下,您可以使用
SafeHandle
简化此操作-我无法判断这是否适用于您的情况,因为我看不到发生了什么…您试图关闭哪个句柄?我看不到任何分配句柄的操作
此外,在许多情况下,您可以使用
SafeHandle
来简化此操作-我无法判断这是否适用于您的情况,因为我看不出发生了什么…想法是完成此指令此操作。_cont=(int)(matriz\u binaria.Compute(“COUNT(TID)”,strExpr))对于每一篇文章,问题不在于增加内存的使用,我认为这是因为它是垃圾。
我的想法是创建一个类来避免内存的增长。已经放置了_cont变量=1,并且对内存没有影响,这会产生intrucção内存的问题,每个段落的目的和效果都是为了清理用这个指令创建的垃圾内存。_cont=(int)(matriz_binaria.Compute)(“计数(TID)”,strExpr));**
感谢我们的想法是完成这条指令这条指令。_cont=(int)(matriz_binaria.Compute(“COUNT(TID)”,strExpr));对于每一篇文章,问题不在于增加内存的使用,我认为大部分是因为它是垃圾。 我的想法是创建一个类来避免内存的增长。已经放置了_cont变量=1,并且对内存没有影响,这会产生intrucção内存的问题,每个段落的目的和效果都是为了清理用这个指令创建的垃圾内存。_cont=(int)(matriz_binaria.Compute)(“计数(TID)”,strExpr));**
感谢感谢您的回复,问题就在这里,在许多段落中,lopp是由数据生成的,并且在内存中产生了许多我无法控制的垃圾,我如何控制这些垃圾。_cont=(int)(matriz_binaria.Compute(“COUNT(TID)”,strExpr));在内存中创建大量对象与需要IDisposable或句柄完全不同。再说一次:您是否有任何需要处置的非托管资源?感谢您的回复,问题就在这里,在许多由数据生成的lopp中,正在内存中创建大量我无法控制的垃圾,我如何控制这些垃圾这就是。_cont=(int)(matriz_binaria.Compute(“COUNT(TID)”,strExpr));在内存中创建大量对象与需要IDisposable或句柄完全不同。再说一次:您是否有任何需要处置的非托管资源?