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

Reply via email to