1

私は機能を持っています:

    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;
4

0 に答える 0