我遇到一个问题,即我的应用程序中的句柄数量不断增长。我做了调试,并认识到这是由System.Threading.Thread类用于某些例程引起的。为了简化我创建了一个示例.NET应用程序调试:使用.NET System.Threading.Thread处理泄漏类
...
private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(DoWork);
t.Start();
}
public void DoWork(object parameter)
{
// Do something...
}
...
每次我点击按钮,使用System.Threading.Thread类创建一个线程。 问题是,看起来像线程不释放句柄,因为每次点击导致句柄数量增长~5。
问题是:如何手动释放由System.Threading.Thread类创建的所有句柄?
在此先感谢。
这将取决于把手您的应用程序正在泄漏的类型的错误,它们是怎么分配的。 DoWork方法有什么作用? – 2010-05-24 09:01:57
其实即使DoWork不做任何事情(如我的例子) - 有5个手柄在泄漏。我做了:1)创建测试.net应用程序2)在主窗体上放置一个按钮3)添加按钮单击事件处理程序和DoWork就像我的例子。而已。即使这样简单的应用程序导致5处理泄漏 – Mahno 2010-05-24 09:07:44