Принципиальный молчун
Зарегистрирован: 17 March 2008
Сообщения: 5
Примеры кода: 0
|
Течет ресурс в простом NET приложении |
17 March 2008 23:41 |
|
|
|
|
Привет
Помогите решить проблему. При работе ниже следующего кода течет системный ресурс Handles (Task Manager) - увеличивается каждую секунду.
Проект сотсоит из формочки на которой брошен один мультистрочный TextBox:
public partial class Form1 : Form
{
System.Threading.Timer tm;
public Form1()
{
InitializeComponent();
// start timer 1 second interval ...
tm = new System.Threading.Timer(OnTimer, null, 0, 1000);
}
void OnTimer(Object state)
{
// add text in thread safe mode ...
AddTerminalText(" Resource Leak!!! ");
}
delegate void AddTextCallback(string text);
AddTextCallback d;
object[] arg = new object[1];
private void AddTerminalText(string text)
{
if (textBox1.InvokeRequired)
{
if (d == null)
{
d = new AddTextCallback(AddTerminalText);
}
arg[0] = text;
textBox1.Invoke(d, arg);
}
else
{
textBox1.AppendText(text); // add text into control ...
}
}
}
Самое занимательное что если изменение текста в блоке else{} последнего метода вообще убрать - хендлы все равно текут
Роман
Данное сообщение получено с сайта GotDotNet.RU
Последний раз редактировалось 17 March 2008 23:40
|
|