Click here to Skip to main content
15,887,376 members
Home / Discussions / C#
   

C#

 
GeneralRe: C# Multithreading, GUI hangs while loading Pin
PhilDanger31-Jul-07 7:38
PhilDanger31-Jul-07 7:38 
GeneralRe: C# Multithreading, GUI hangs while loading Pin
Justincc31-Jul-07 10:05
professionalJustincc31-Jul-07 10:05 
GeneralRe: C# Multithreading, GUI hangs while loading Pin
PhilDanger31-Jul-07 10:21
PhilDanger31-Jul-07 10:21 
GeneralRe: C# Multithreading, GUI hangs while loading Pin
Justincc31-Jul-07 10:40
professionalJustincc31-Jul-07 10:40 
GeneralRe: C# Multithreading, GUI hangs while loading Pin
Justincc31-Jul-07 10:57
professionalJustincc31-Jul-07 10:57 
GeneralRe: C# Multithreading, GUI hangs while loading Pin
Judah Gabriel Himango31-Jul-07 13:15
sponsorJudah Gabriel Himango31-Jul-07 13:15 
GeneralRe: C# Multithreading, GUI hangs while loading Pin
Luc Pattyn31-Jul-07 7:53
sitebuilderLuc Pattyn31-Jul-07 7:53 
AnswerRe: C# Multithreading, GUI hangs while loading Pin
PhilDanger31-Jul-07 7:30
PhilDanger31-Jul-07 7:30 
I'm not quite sure what the LoadCompanies is supposed to be doing, but focus on this part:

if (pnlNavigation.InvokeRequired) //checks to see if the current function is on the same thread as the object
{
      LoadCompaniesDelegate find = new LoadCompaniesDelegate(LoadCompanies); //sets up a recursive call to LoadCompanies?
      this.Invoke(find, new object[] { }); //runs the LoadCompanies on the panel's thread
}
else
{
      pnlNavigation.ContentTree.ParentMember = "ParentId";
      pnlNavigation.ContentTree.ValueMember = "Id";
      pnlNavigation.ContentTree.DisplayMember = "Name";
      pnlNavigation.ContentTree.PrefixMember = "CustomerNumber";
      pnlNavigation.ContentTree.PostfixMember = "CityState";
      pnlNavigation.ContentTree.DataSource = src;
}


As you can see by the comments, the BackgroundWorker will indeed run LoadCompanies on its own thread. You then check for InvokeRequired -- since crossthreaded operations are illegal, this function returns true if the object is on another thread. If it is (which I'm guessing pnlNavigation is a GUI element on the GUI thread), you then call Invoke to call LoadCompanies, which forces it to run on the GUI thread! So you're back where you started, and you have to load from the database AGAIN!
GeneralRe: C# Multithreading, GUI hangs while loading Pin
Justincc31-Jul-07 7:36
professionalJustincc31-Jul-07 7:36 
GeneralRe: C# Multithreading, GUI hangs while loading Pin
PhilDanger31-Jul-07 7:39
PhilDanger31-Jul-07 7:39 
AnswerRe: C# Multithreading, GUI hangs while loading Pin
Judah Gabriel Himango31-Jul-07 10:02
sponsorJudah Gabriel Himango31-Jul-07 10:02 
GeneralRe: C# Multithreading, GUI hangs while loading Pin
Justincc31-Jul-07 10:20
professionalJustincc31-Jul-07 10:20 
GeneralRe: C# Multithreading, GUI hangs while loading Pin
PhilDanger31-Jul-07 10:23
PhilDanger31-Jul-07 10:23 
GeneralRe: C# Multithreading, GUI hangs while loading Pin
Justincc31-Jul-07 10:32
professionalJustincc31-Jul-07 10:32 
GeneralRe: C# Multithreading, GUI hangs while loading Pin
Judah Gabriel Himango31-Jul-07 13:13
sponsorJudah Gabriel Himango31-Jul-07 13:13 
QuestionBeginner Need Help Pin
patkan31-Jul-07 7:03
patkan31-Jul-07 7:03 
AnswerRe: Beginner Need Help Pin
Dave Kreskowiak31-Jul-07 7:29
mveDave Kreskowiak31-Jul-07 7:29 
GeneralRe: Beginner Need Help Pin
patkan1-Aug-07 0:11
patkan1-Aug-07 0:11 
GeneralRe: Beginner Need Help Pin
Dave Kreskowiak1-Aug-07 11:59
mveDave Kreskowiak1-Aug-07 11:59 
AnswerRe: Beginner Need Help Pin
PIEBALDconsult31-Jul-07 11:25
mvePIEBALDconsult31-Jul-07 11:25 
GeneralRe: Beginner Need Help Pin
Paul Conrad31-Jul-07 17:47
professionalPaul Conrad31-Jul-07 17:47 
GeneralRe: Beginner Need Help Pin
patkan1-Aug-07 0:38
patkan1-Aug-07 0:38 
GeneralRe: Beginner Need Help Pin
patkan1-Aug-07 0:33
patkan1-Aug-07 0:33 
GeneralRe: Beginner Need Help Pin
PIEBALDconsult1-Aug-07 13:51
mvePIEBALDconsult1-Aug-07 13:51 
QuestionShadowing and Overriding Pin
sivakumaran_in31-Jul-07 7:02
sivakumaran_in31-Jul-07 7:02 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.