[DUG] Program crashes - anyone knows why?

Gajo Csaba csaba at enyem.com
Mon Nov 27 09:57:08 NZDT 2006


Yeah I've made an UpdateGUI method which I call with Synchronize(UpdateGUI)


On Sun, 26 Nov 2006 21:38:37 +0100, Matthew Comb <matt at ferndigital.com>  
wrote:

> Have you made the insertion into the TListView threadsafe? e.g.
> Synchronized or similar ?
>
> Matt.
>
>> They display the information in a TListView set to Report style. When a
>> keyword is processed it is added to the list. There shouldn't be  
>> problems
>> with this, I've previously worked on an application that processed  
>> 60.000
>> keywords and there was no problem (though there was only 1 thread  
>> there).
>>
>> Csaba
>>
>>
>> On Sun, 26 Nov 2006 21:26:34 +0100, Matthew Comb <matt at ferndigital.com>
>> wrote:
>>
>>> I would be more concerned with what the threads do with the information
>>> they get once completed searching.
>>>
>>> e.g. displaying on main form in some way.
>>>
>>> Exceptions within a thread shouldn't propogate to the main thread  
>>> unless
>>> im missing something?
>>>
>>> Matt.
>>>
>>>> Thanks Conor, I've added (A) and sent the application to the client,  
>>>> so
>>>> let's hope there will be some progress.
>>>>
>>>>
>>>> On Sun, 26 Nov 2006 20:35:38 +0100, Conor Boyd
>>>> <Conor.Boyd at trimble.co.nz>
>>>> wrote:
>>>>
>>>>> That's a very detailed email... ;-)
>>>>>
>>>>> Without delving deeper, I've a couple of comments/suggestions.
>>>>>
>>>>> A) You definitely need a try-except block in your Execute method.   
>>>>> You
>>>>> must not let unhandled exceptions propagate out of a thread.  Even if
>>>>> you only put a call to OutputDebugString in your exception handler,
>>>>> then
>>>>> that means you could use e.g. DebugView from Sysinternals to view
>>>>> exceptions being thrown.
>>>>>
>>>>> B) Try adding the madExcept library from www.madshi.net to your
>>>>> application.  It should help hugely in tracking down unhandled errors
>>>>> like this, especially when they are happening on a remote machine.
>>>>> You
>>>>> can configure it so that in the event of an error, your program can
>>>>> automatically email you the error reports including call stacks, etc.
>>>>>
>>>>> C) You could also try using the URLDownloadToFile function from the
>>>>> URLMon unit instead.  I use it in a threaded application, and it  
>>>>> works
>>>>> fine for me.
>>>>>
>>>>> I don't know what you're using to access Google, but I've been using
>>>>> the
>>>>> Indy components very successfully in one of my projects.
>>>>>
>>>>> Good luck in trying your error down...
>>>>>
>>>>> HTH,
>>>>>
>>>>> Conor
>>>>>
>>>>> -----Original Message-----
>>>>> From: delphi-bounces at ns3.123.co.nz
>>>>> [mailto:delphi-bounces at ns3.123.co.nz]
>>>>> On Behalf Of Gajo Csaba
>>>>>
>>>>> I wrote a multithreaded application for a client and it crashes on  
>>>>> the
>>>>> client's computer, while it works ok on mine. Can someone give me a
>>>>> clue
>>>>> as to what might be the problem?
>>>>>
>>>>> The program works like this: I have two TThreadLists: one contains a
>>>>> list of keywords (~20000) while the other a list of proxy servers
>>>>> (~500). When the user clicks on the button, 21 threads are created. 1
>>>>> thread directly accesses Google, enters the keyword and processes the
>>>>> result. The other 20 threads do the same, except they use a proxy
>>>>> server.
>>>>>
>>>>> OK, so each thread grabs a keyword from the list and then removes it
>>>>> from the list, so no one else could use it again. It tries to access
>>>>> the
>>>>> internet. If the connection fails then it means the proxy doesn't
>>>>> work,
>>>>> so it gets another proxy address from the list. No two threads ever
>>>>> share the same proxy. If there are no more free proxies left, the
>>>>> thread
>>>>> dies (and returns the unprocessed keyword to the list).
>>>>>
>>>>> [snip]
>>>>>
>>>>> _______________________________________________
>>>>> Delphi mailing list
>>>>> Delphi at ns3.123.co.nz
>>>>> http://ns3.123.co.nz/mailman/listinfo/delphi
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
>>>> _______________________________________________
>>>> Delphi mailing list
>>>> Delphi at ns3.123.co.nz
>>>> http://ns3.123.co.nz/mailman/listinfo/delphi
>>>>
>>>
>>>
>>> _______________________________________________
>>> Delphi mailing list
>>> Delphi at ns3.123.co.nz
>>> http://ns3.123.co.nz/mailman/listinfo/delphi
>>>
>>>
>>
>>
>>
>> --
>> Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
>> _______________________________________________
>> Delphi mailing list
>> Delphi at ns3.123.co.nz
>> http://ns3.123.co.nz/mailman/listinfo/delphi
>>
>
>
> _______________________________________________
> Delphi mailing list
> Delphi at ns3.123.co.nz
> http://ns3.123.co.nz/mailman/listinfo/delphi
>
>



-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/


More information about the Delphi mailing list