RES: [delphi-br] Multi-Thread

2009-01-05 Por tôpico Fabio Lima
José obrigado pela resposta.

Eu já estou ativando o Map detalhado na minha aplicação, porém infelizmente
não esta dando certo desta maneira.

Com outros erros o log aponta exatamente o local, sem problemas.

Quanto a sessões críticas, vou tentar implementar se a minha alteração
(citada na resposta anterior não der certo).

Uma dúvida quanto as sessões críticas:

Em um exemplo que encontrei na net  -
http://delphi.about.com/gi/dynamic/offsite.htm?zi=1/XJ/Ya
http://delphi.about.com/gi/dynamic/offsite.htm?zi=1/XJ/Yasdn=delphicdn=co
mputetm=96f=00tt=14bt=0bts=0zu=http%3A//www.delphicorner.f9.co.uk/arti
cles/op4.htm
sdn=delphicdn=computetm=96f=00tt=14bt=0bts=0zu=http%3A//www.delphico
rner.f9.co.uk/articles/op4.htm

Este exemplo ele explica bem, mas o única problema que
encontrei em implementar esta rotina, foi que no exemplo ele utiliza thread
“fixas”, ou seja ele sabe quantas serão geradas, no meu caso eu não, pois
elas são geradas dinamicamente.

Você já chegou a usar desta maneira?

 

 

Fábio Lima de Oliveira
Analista de Sistema
Grupo Coan Alimentos  Serviços


E-mail: fabio.l...@grupocoan.com.br

Site: http://www.grupocoan.com.br http://www.grupocoan.com.br/ 

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de José Mário Silva Guedes
Enviada em: segunda-feira, 5 de janeiro de 2009 10:53
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Multi-Thread

 

Para achar o local exato do seu Access Violation, procure na web o
AVFinder.exe. Acho que será bem útil no seu caso. Para usá-lo você tem que
ativar a geração do arquivo MAP (Project-Options-Linker-Map
File-Detailed).

Sugiro sempre, caso não esteja utilizando, o uso da seção crítica para se
trabalhar com threads.

[As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Multi-Thread

2009-01-05 Por tôpico José Mário Silva Guedes
Para achar o local exato do seu Access Violation, procure na web o
AVFinder.exe. Acho que será bem útil no seu caso. Para usá-lo você tem que
ativar a geração do arquivo MAP (Project-Options-Linker-Map
File-Detailed).

Sugiro sempre, caso não esteja utilizando, o uso da seção crítica para se
trabalhar com threads.


[As partes desta mensagem que não continham texto foram removidas]



RES: [delphi-br] Multi-Thread

2009-01-05 Por tôpico Fabio Lima
Renato, bom dia!

Desde já agradeço pela sua resposta.

Os métodos que alteram a VCL já estão declarados como “seguro”.

O que estou pensando em fazer é colocar um tempo maior para disparar Threads
e também as mesmas serem disparadas por um único timer também.

Assim que eu tiver uma posição sobre esta alteração eu posto na lista.

 

Fábio Lima de Oliveira
Analista de Sistema
Grupo Coan Alimentos  Serviços


E-mail: fabio.l...@grupocoan.com.br

Site: http://www.grupocoan.com.br http://www.grupocoan.com.br/ 

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Paulo Coutinho
Enviada em: terça-feira, 30 de dezembro de 2008 20:52
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Multi-Thread

 

O método serve apenas para quando você for alterar algo visualmente direto
da thread, tornando ela uma safe thread.

Se na thread você quiser alterar sua progressbar, use este método seguro
para fazer tal ação.

Claro que isso não é uma solução para o seu problema, mas deve ajudar.

Abs.

2008/12/30 Fabio Lima fabio.l...@grupocoan.com.br
mailto:fabio.lima%40grupocoan.com.br 

 Boa tarde pessoal!

 Estou desenvolvento um sistema que trabalha com várias Threads.

 O sistema tem a função de extrair dados dos servidores e geram um arquivo
 .txt que é importado por outra Thread.

 Lendo em alguns artigos vi que os métodos que não alteram algo dentro da
 VCL
 não devem utilizar o Synchronize.

 O sistema roda tranquilamente durante uns 4 minutos e log em seguida acaba
 gerando vários Access Violation, para tentar encontrar o problema eu
 utilizei o componen Expression Manager para gerar os logs incluisive o
call
 Stack.

 Um exmeplo dos logs segue abaixo:

 Tipo : EAccessViolation ( EExternal )

 Unit : Classes

 Linha : Unknown

 Classe : Classes

 Função : TComponent.Notification

 Endereço : 0x0042AA68

 Sender Class : TTimer  TComponent  TPersistent  TObject

 Sender Name : tmrPing

 Ip : 121.120.119.142

 Mem Total(Kb) : 515.180 Ko

 Mem Disp(%) : 94 %

 Mem Virtual(Kb) : 2.097.024 Ko

 Mem Vir Disp(Kb): 2.064.796 Ko

 Pag Total(Kb) : 1.259.336 Ko

 Pag Disp(Kb) : 409.056 Ko

 Mensagem : Access violation at address 0042AA68 in module
 'Monitoramento.exe'. Read of address 0830

 Call Stack : U_XAM_Debug::U_XAM_Debug.TXAMDebug.GetCallStack

 U_XAM_Debug::U_XAM_Debug.TXAMDebug.GetExceptionInfos

 U_XAM_Debug::U_XAM_Debug.TXAMDebug.ProcessException

 U_XAM_Debug::U_XAM_Debug.TXAMDebug.HandleException

 Forms::Forms.TApplication.HandleException

 Classes::Classes.StdWndProc

 Windows::Windows.HwndMSWheel

 ActiveX::ActiveX.SafeArrayGetUBound

 SysConst::ActiveX.Succeeded

 SysConst::ActiveX.Succeeded

 Variants::varian...@varfromlstr

 Variants::varian...@vartoint64

 Classes::Classes.TComponent.DestroyComponents

 Classes::Classes.TThread.CheckThreadError

 Menus::Menus.TMenu.UpdateImage

 Menus::Menus.TMenu.AdjustBiDiBehavior

 StdCtrls::StdCtrls.TCustomGroupBox.AdjustClientRect

 StdCtrls::StdCtrls.TCustomGroupBox.Create

 SysUtils::SysUtils.ShowException

 System::System.ParamCount

 SysUtils::SysUtils.ScanTime

 Já tentei analizar este log, principalmente tentar encontrar uma
explicação
 para o Access violation.

 Se alguém analizando este log conseguir encontrar algo que possa me ajudar
 agradeço.

 Aproveitando, Feliz Ano Novo a todos.

 Fábio Lima de Oliveira
 Analista de Sistema
 Grupo Coan Alimentos  Serviços

 Fone: +55 15 3282-9050

 Ramal: 9050
 Cel: 19 9187-4192
 E-mail: mailto:fabio.l...@grupocoan.com.br
mailto:fabio.lima%40grupocoan.com.br fabio.lima%40grupocoan.com.br
 fabio.l...@grupocoan.com.br mailto:fabio.lima%40grupocoan.com.br
fabio.lima%40grupocoan.com.br

 Site: http://www.grupocoan.com.br/ http://www.grupocoan.com.br

 [As partes desta mensagem que não continham texto foram removidas]

 


-- 
Atenciosamente,
Paulo Coutinho.
Site: www.prsolucoes.com
Msn: pa...@prsolucoes.com mailto:paulo%40prsolucoes.com 
Skype: paulo.prsolucoes

[As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Multi-Thread

2008-12-31 Por tôpico Paulo Coutinho
O método serve apenas para quando você for alterar algo visualmente direto
da thread, tornando ela uma safe thread.

Se na thread você quiser alterar sua progressbar, use este método seguro
para fazer tal ação.

Claro que isso não é uma solução para o seu problema, mas deve ajudar.

Abs.

2008/12/30 Fabio Lima fabio.l...@grupocoan.com.br

   Boa tarde pessoal!

 Estou desenvolvento um sistema que trabalha com várias Threads.

 O sistema tem a função de extrair dados dos servidores e geram um arquivo
 .txt que é importado por outra Thread.

 Lendo em alguns artigos vi que os métodos que não alteram algo dentro da
 VCL
 não devem utilizar o Synchronize.

 O sistema roda tranquilamente durante uns 4 minutos e log em seguida acaba
 gerando vários Access Violation, para tentar encontrar o problema eu
 utilizei o componen Expression Manager para gerar os logs incluisive o call
 Stack.

 Um exmeplo dos logs segue abaixo:

 Tipo : EAccessViolation ( EExternal )

 Unit : Classes

 Linha : Unknown

 Classe : Classes

 Função : TComponent.Notification

 Endereço : 0x0042AA68

 Sender Class : TTimer  TComponent  TPersistent  TObject

 Sender Name : tmrPing

 Ip : 121.120.119.142

 Mem Total(Kb) : 515.180 Ko

 Mem Disp(%) : 94 %

 Mem Virtual(Kb) : 2.097.024 Ko

 Mem Vir Disp(Kb): 2.064.796 Ko

 Pag Total(Kb) : 1.259.336 Ko

 Pag Disp(Kb) : 409.056 Ko

 Mensagem : Access violation at address 0042AA68 in module
 'Monitoramento.exe'. Read of address 0830

 Call Stack : U_XAM_Debug::U_XAM_Debug.TXAMDebug.GetCallStack

 U_XAM_Debug::U_XAM_Debug.TXAMDebug.GetExceptionInfos

 U_XAM_Debug::U_XAM_Debug.TXAMDebug.ProcessException

 U_XAM_Debug::U_XAM_Debug.TXAMDebug.HandleException

 Forms::Forms.TApplication.HandleException

 Classes::Classes.StdWndProc

 Windows::Windows.HwndMSWheel

 ActiveX::ActiveX.SafeArrayGetUBound

 SysConst::ActiveX.Succeeded

 SysConst::ActiveX.Succeeded

 Variants::varian...@varfromlstr

 Variants::varian...@vartoint64

 Classes::Classes.TComponent.DestroyComponents

 Classes::Classes.TThread.CheckThreadError

 Menus::Menus.TMenu.UpdateImage

 Menus::Menus.TMenu.AdjustBiDiBehavior

 StdCtrls::StdCtrls.TCustomGroupBox.AdjustClientRect

 StdCtrls::StdCtrls.TCustomGroupBox.Create

 SysUtils::SysUtils.ShowException

 System::System.ParamCount

 SysUtils::SysUtils.ScanTime

 Já tentei analizar este log, principalmente tentar encontrar uma explicação
 para o Access violation.

 Se alguém analizando este log conseguir encontrar algo que possa me ajudar
 agradeço.

 Aproveitando, Feliz Ano Novo a todos.

 Fábio Lima de Oliveira
 Analista de Sistema
 Grupo Coan Alimentos  Serviços

 Fone: +55 15 3282-9050

 Ramal: 9050
 Cel: 19 9187-4192
 E-mail: mailto:fabio.l...@grupocoan.com.brfabio.lima%40grupocoan.com.br
 fabio.l...@grupocoan.com.br fabio.lima%40grupocoan.com.br

 Site: http://www.grupocoan.com.br/ http://www.grupocoan.com.br

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Atenciosamente,
Paulo Coutinho.
Site: www.prsolucoes.com
Msn:  pa...@prsolucoes.com
Skype: paulo.prsolucoes


[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] Multi-Thread

2008-12-30 Por tôpico Fabio Lima
Boa tarde pessoal!

Estou desenvolvento um sistema que trabalha com várias Threads.

O sistema tem a função de extrair dados dos servidores e geram um arquivo
.txt que é importado por outra Thread.

Lendo em alguns artigos vi que os métodos que não alteram algo dentro da VCL
não devem utilizar o Synchronize.

O sistema roda tranquilamente durante uns 4 minutos e log em seguida acaba
gerando vários Access Violation, para tentar encontrar o problema eu
utilizei o componen Expression Manager para gerar os logs incluisive o call
Stack.

Um exmeplo dos logs segue abaixo:

Tipo: EAccessViolation ( EExternal )

Unit: Classes

Linha   : Unknown

Classe  : Classes

Função  : TComponent.Notification

Endereço: 0x0042AA68

Sender Class: TTimer  TComponent  TPersistent  TObject

Sender Name : tmrPing

Ip  : 121.120.119.142

Mem Total(Kb)   : 515.180 Ko

Mem Disp(%) : 94 %

Mem Virtual(Kb) : 2.097.024 Ko

Mem Vir Disp(Kb): 2.064.796 Ko

Pag Total(Kb)   : 1.259.336 Ko

Pag Disp(Kb): 409.056 Ko

Mensagem: Access violation at address 0042AA68 in module
'Monitoramento.exe'. Read of address 0830

Call Stack  : U_XAM_Debug::U_XAM_Debug.TXAMDebug.GetCallStack

 
U_XAM_Debug::U_XAM_Debug.TXAMDebug.GetExceptionInfos

 
U_XAM_Debug::U_XAM_Debug.TXAMDebug.ProcessException

 
U_XAM_Debug::U_XAM_Debug.TXAMDebug.HandleException

 
Forms::Forms.TApplication.HandleException

 Classes::Classes.StdWndProc

 
Windows::Windows.HwndMSWheel

 
ActiveX::ActiveX.SafeArrayGetUBound

 SysConst::ActiveX.Succeeded

 SysConst::ActiveX.Succeeded

 
Variants::varian...@varfromlstr

 
Variants::varian...@vartoint64

 
Classes::Classes.TComponent.DestroyComponents

 
Classes::Classes.TThread.CheckThreadError

 
Menus::Menus.TMenu.UpdateImage

 
Menus::Menus.TMenu.AdjustBiDiBehavior

 
StdCtrls::StdCtrls.TCustomGroupBox.AdjustClientRect

 
StdCtrls::StdCtrls.TCustomGroupBox.Create

 
SysUtils::SysUtils.ShowException

 System::System.ParamCount

 SysUtils::SysUtils.ScanTime

Já tentei analizar este log, principalmente tentar encontrar uma explicação
para o Access violation.

Se alguém analizando este log conseguir encontrar algo que possa me ajudar
agradeço.

Aproveitando, Feliz Ano Novo a todos.

 

Fábio Lima de Oliveira
Analista de Sistema
Grupo Coan Alimentos  Serviços

Fone: +55 15 3282-9050

Ramal: 9050
Cel: 19 9187-4192
E-mail:  mailto:fabio.l...@grupocoan.com.br fabio.l...@grupocoan.com.br

Site:  http://www.grupocoan.com.br/ http://www.grupocoan.com.br

 



[As partes desta mensagem que não continham texto foram removidas]