Hmm, sounds like a starvation of (pool)threads ... Another way might be to use Control.Invoke, which doesnt use other threads, i believe, but uses the good old PostMessage.
Why are you afraid of lock? ;) But then again with another thread pulling data from a queue (which ever queue), its actions on the GUI must be marshalled anyway... HTH // Ryan On 9/8/06, peter lin <[EMAIL PROTECTED]> wrote:
Dear Sir, Thanks for your response. I have read that article before, I also have a book from juval lowy. Programming .Net component , Great book. Maybe I have to say that I implement it this way is from his book or recommendation. Since I have the experience to implement it using asychronous method with heavy loading and running in 2 CPUs, I have to say it really don't work. If you create 3x threads ,doing the asynchronous invoke and bombard it with heavy loading in 2 CPU environment, you will face this problem a few hours later. I never use lock so why one of my threads hang? the thread job is simple--getting job from queue and call asynchrous invoke to show data to listview. Where it comes from? I once heard from Dot Net Rock that Joe Duffy said their thread pool has known bugs, and asynchrous method use threadpool a lot. I have to rethink it in design view. Do I need to use *asynchronous method invocation and multithreading? *I 'm 100 percent sure the culprit is MS asynchronous method invocation and multithread running on OS more than 1 CPU.. I have to make it de-couple, better use queue here, 3x threads instead of calling invoke , they just put their data into queue and my gui thread pulling data from the queue and update it on listview. What I can use for queue? The solution is a lots Sqlite... it can not handle multi-write. Db4o ... have to use client-server method and I have never used this before , better not to use it. MSMQ ... The system is on win2000 advance server, msmq is not the latest version. can not use it,either MySql ... I think it's the better way to implement the queue I need. Why I want to use tools like this to implement queue, I can do it myself. because I don't want to use lock , mysql can handle it for me. * * 2006/9/7, Ryan Heath <[EMAIL PROTECTED]>: > > You might want to have a look at the BackgroundWorker component, which > is really suited for backgroundworkerthreads that access the GUI. > > If you are using .net 1.1, you can use the BackgroundWorker from Juval > Lowy, > which mimics the 2.0 version > http://www.devx.com/codemag/Article/20639?trk=DXRSS_DOTNET > > HTH > // Ryan > > =================================== > This list is hosted by DevelopMentor(r) http://www.develop.com > > View archives and manage your subscription(s) at > http://discuss.develop.com > =================================== This list is hosted by DevelopMentor(r) http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com
=================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com