Tutorial :nhibernate, async loading



Question:

I have a question about hibernate. I use different controls in my application (treeview, combobox, ...). I get the content for these controls through nhibernate. The problem is, that it takes a lot of time to get the data. Drung this time the form is frozen.

I want to load the data in another thread. But i don't know where to put that thread. I'm new at hibernate, maybe you have more experience about that.


Solution:1

This isn't really an NHibernate problem, but rather a .NET Windows Forms threading one. Anyways, on a Forms environment, the easiest way to load all the NHibernate on a background thread would be to use the BackgroundWorker component.

private void LoadData(object sender, EventArgs e)  {      // This event fires whatever's in DoWork() on a separate thread.      backgroundWorker1.RunWorkerAsync();        // Things to do asynchronous operation.      timer1.Start();  }    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)  {      // NHibernate loading goes here...      var employees = Session.CreateCriteria<Employee>();      combobox1.DataSource = employees;  }  

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »