私は機能を持っています:
private void FindEmployees(object source, MyEventArgs e)
{
using (SqliteConnection conn = new SqliteConnection(connectionString))
{
conn.Open();
using (MyDataContext db = new MyDataContext(conn))
{
IQueryable<Employee> employees = from g in db.Employees
where g.Name == e.Name
orderby g.Name
select g;
if (employees.Count() == 0)
{
MessageBox.Show("Not found");
}
else
{
Employee employee = employees.First<Employee>();
txtAddress.Text = employee.Address;
}
}
}
}
私のプログラムは、テストメモリリークのためにランダムな「e.Name」(DBからの実名)でこの関数を3秒ごとに呼び出します。12 時間後、空きメモリがすべて消費されたため、Linux が私のプログラムを強制終了しました。
誰か助けてください!
以下の行にコメントすると、リークはありません!
Employee employee = employees.First<Employee>();
txtAddress.Text = employee.Address;