Bonjour=20
Si je lance dans un timer cette routine qui doit lire une=20
base et rafraichir un datagrid alors progressivement la=20
taille qu'utilise mon programme augmente r=E9guli=E8rement.
Je ne sais plus quoi faire pour r=E9soudre ce probl=E8me.
Private Sub affiche_alarmes()
ConnString =3D "Provider =3D=20
Microsoft.Jet.Oledb.4.0;Data Source=3D" &=20
Application.StartupPath & "\Mabase.mdb;Jet OLEDB:Database=20
Password=3D123;"
Dim requete As String =3D "SELECT * FROM=20
AlarmesPresentes ORDER BY PRIORITE,CHRONO ASC "
Dim ds As New DataSet
Dim conn As New OleDbConnection(ConnString)
conn.Open()
Dim da As New OleDbDataAdapter(requete, conn)
ds.Clear()
da.Fill(ds, "ALARMES")
DataGrid1.DataSource =3D ds.Tables("ALARMES")
DataGrid1.Refresh()
da.Dispose()
ds.Dispose()
requete =3D Nothing
conn.Close() : conn.Dispose()
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
David Bouchard
Essaye quelque chose. Regarde dans les process de windows la taille qui est utilisé en mémoire lorsque la taille de ton formulaire est maximiser et ensuite, réduit la taille du formulaire pour qu'il se retrouve seulement dans la barre de menu de windows et regarde à nouveau la mémoire. Si celle-ci revient à la valeur de départ ou au moin, qu'elle diminue de beaucoup, alors, tu ne devrais pas avoir de problème. En faite, je ne suis pas un expert avec la gestion de la mémoire mais je sais que le garbage collector pour la mémoire est géré d'une façon assez spécial et autrement dit, si jamais ta mémoire deviendrais trop chargé, il s'occuperait lui-même de la vider, ce qu'il fait lorsque tu abaisse ta fenêtre. En faite, dans ton cas, lorsque tu appelles dispose, ca ne veut pas dire que celui-ci va être automatiquement vidé de la mémoire mais il va plutot être placé dans une pile et ensuite, lorsque le CLR en sentira le besoin, il videra la mémoire lui-même. Sinon, je suis un peu embêté pour t'aider puisque tu dispose bien tout tes objets et je ne vois pas ou se situerait le problème.
David
a écrit dans le message de news: 04bf01c4ee86$d0d90b50$ Bonjour Si je lance dans un timer cette routine qui doit lire une base et rafraichir un datagrid alors progressivement la taille qu'utilise mon programme augmente régulièrement. Je ne sais plus quoi faire pour résoudre ce problème. Private Sub affiche_alarmes() ConnString = "Provider Microsoft.Jet.Oledb.4.0;Data Source=" & Application.StartupPath & "Mabase.mdb;Jet OLEDB:Database Password3;" Dim requete As String = "SELECT * FROM AlarmesPresentes ORDER BY PRIORITE,CHRONO ASC " Dim ds As New DataSet Dim conn As New OleDbConnection(ConnString)
conn.Open() Dim da As New OleDbDataAdapter(requete, conn) ds.Clear() da.Fill(ds, "ALARMES") DataGrid1.DataSource = ds.Tables("ALARMES") DataGrid1.Refresh() da.Dispose() ds.Dispose() requete = Nothing conn.Close() : conn.Dispose() End Sub
Essaye quelque chose. Regarde dans les process de windows la taille qui est
utilisé en mémoire lorsque la taille de ton formulaire est maximiser et
ensuite, réduit la taille du formulaire pour qu'il se retrouve seulement
dans la barre de menu de windows et regarde à nouveau la mémoire. Si
celle-ci revient à la valeur de départ ou au moin, qu'elle diminue de
beaucoup, alors, tu ne devrais pas avoir de problème. En faite, je ne suis
pas un expert avec la gestion de la mémoire mais je sais que le garbage
collector pour la mémoire est géré d'une façon assez spécial et autrement
dit, si jamais ta mémoire deviendrais trop chargé, il s'occuperait lui-même
de la vider, ce qu'il fait lorsque tu abaisse ta fenêtre. En faite, dans ton
cas, lorsque tu appelles dispose, ca ne veut pas dire que celui-ci va être
automatiquement vidé de la mémoire mais il va plutot être placé dans une
pile et ensuite, lorsque le CLR en sentira le besoin, il videra la mémoire
lui-même. Sinon, je suis un peu embêté pour t'aider puisque tu dispose bien
tout tes objets et je ne vois pas ou se situerait le problème.
David
<anonymous@discussions.microsoft.com> a écrit dans le message de news:
04bf01c4ee86$d0d90b50$a301280a@phx.gbl...
Bonjour
Si je lance dans un timer cette routine qui doit lire une
base et rafraichir un datagrid alors progressivement la
taille qu'utilise mon programme augmente régulièrement.
Je ne sais plus quoi faire pour résoudre ce problème.
Private Sub affiche_alarmes()
ConnString = "Provider Microsoft.Jet.Oledb.4.0;Data Source=" &
Application.StartupPath & "Mabase.mdb;Jet OLEDB:Database
Password3;"
Dim requete As String = "SELECT * FROM
AlarmesPresentes ORDER BY PRIORITE,CHRONO ASC "
Dim ds As New DataSet
Dim conn As New OleDbConnection(ConnString)
conn.Open()
Dim da As New OleDbDataAdapter(requete, conn)
ds.Clear()
da.Fill(ds, "ALARMES")
DataGrid1.DataSource = ds.Tables("ALARMES")
DataGrid1.Refresh()
da.Dispose()
ds.Dispose()
requete = Nothing
conn.Close() : conn.Dispose()
End Sub
Essaye quelque chose. Regarde dans les process de windows la taille qui est utilisé en mémoire lorsque la taille de ton formulaire est maximiser et ensuite, réduit la taille du formulaire pour qu'il se retrouve seulement dans la barre de menu de windows et regarde à nouveau la mémoire. Si celle-ci revient à la valeur de départ ou au moin, qu'elle diminue de beaucoup, alors, tu ne devrais pas avoir de problème. En faite, je ne suis pas un expert avec la gestion de la mémoire mais je sais que le garbage collector pour la mémoire est géré d'une façon assez spécial et autrement dit, si jamais ta mémoire deviendrais trop chargé, il s'occuperait lui-même de la vider, ce qu'il fait lorsque tu abaisse ta fenêtre. En faite, dans ton cas, lorsque tu appelles dispose, ca ne veut pas dire que celui-ci va être automatiquement vidé de la mémoire mais il va plutot être placé dans une pile et ensuite, lorsque le CLR en sentira le besoin, il videra la mémoire lui-même. Sinon, je suis un peu embêté pour t'aider puisque tu dispose bien tout tes objets et je ne vois pas ou se situerait le problème.
David
a écrit dans le message de news: 04bf01c4ee86$d0d90b50$ Bonjour Si je lance dans un timer cette routine qui doit lire une base et rafraichir un datagrid alors progressivement la taille qu'utilise mon programme augmente régulièrement. Je ne sais plus quoi faire pour résoudre ce problème. Private Sub affiche_alarmes() ConnString = "Provider Microsoft.Jet.Oledb.4.0;Data Source=" & Application.StartupPath & "Mabase.mdb;Jet OLEDB:Database Password3;" Dim requete As String = "SELECT * FROM AlarmesPresentes ORDER BY PRIORITE,CHRONO ASC " Dim ds As New DataSet Dim conn As New OleDbConnection(ConnString)
conn.Open() Dim da As New OleDbDataAdapter(requete, conn) ds.Clear() da.Fill(ds, "ALARMES") DataGrid1.DataSource = ds.Tables("ALARMES") DataGrid1.Refresh() da.Dispose() ds.Dispose() requete = Nothing conn.Close() : conn.Dispose() End Sub
E.H
Merci
Quand je réduis la fenêtre la mémoire diminue mais ensuite elle commence à augmenter.Si je laisse cela fini par saturer l'ordinateur et mon programme se plante.Si je sors du programme je ne retrouve pas non plus la le nombre initiale de mémoire disponible avant lancement. Je me demande s'il n'y a pas un problème au niveau de VB.NET .
Merci
Quand je réduis la fenêtre la mémoire diminue mais ensuite
elle commence à augmenter.Si je laisse cela fini par
saturer l'ordinateur et mon programme se plante.Si je sors
du programme je ne retrouve pas non plus la le nombre
initiale de mémoire disponible avant lancement.
Je me demande s'il n'y a pas un problème au niveau de
VB.NET .
Quand je réduis la fenêtre la mémoire diminue mais ensuite elle commence à augmenter.Si je laisse cela fini par saturer l'ordinateur et mon programme se plante.Si je sors du programme je ne retrouve pas non plus la le nombre initiale de mémoire disponible avant lancement. Je me demande s'il n'y a pas un problème au niveau de VB.NET .
David Bouchard
En faite, je crois peut-être que tu serais mieux de ne pas disposer tes objets à chaque fois puisque tu les utilises avec un timer de maniere répétitive. J'ai l'impression que tu pourrais les garder instancier et seulement ouvir et fermer la connection à chaque fois ainsi que faire un clear sur ton dataset. Je ne suis pas convaincu que ca va régler le problème mais j'ai l'impression que ca peut aider.
David
"E.H" a écrit dans le message de news: 051a01c4f01c$cb91b150$ Merci
Quand je réduis la fenêtre la mémoire diminue mais ensuite elle commence à augmenter.Si je laisse cela fini par saturer l'ordinateur et mon programme se plante.Si je sors du programme je ne retrouve pas non plus la le nombre initiale de mémoire disponible avant lancement. Je me demande s'il n'y a pas un problème au niveau de VB.NET .
En faite, je crois peut-être que tu serais mieux de ne pas disposer tes
objets à chaque fois puisque tu les utilises avec un timer de maniere
répétitive. J'ai l'impression que tu pourrais les garder instancier et
seulement ouvir et fermer la connection à chaque fois ainsi que faire un
clear sur ton dataset. Je ne suis pas convaincu que ca va régler le problème
mais j'ai l'impression que ca peut aider.
David
"E.H" <anonymous@discussions.microsoft.com> a écrit dans le message de news:
051a01c4f01c$cb91b150$a501280a@phx.gbl...
Merci
Quand je réduis la fenêtre la mémoire diminue mais ensuite
elle commence à augmenter.Si je laisse cela fini par
saturer l'ordinateur et mon programme se plante.Si je sors
du programme je ne retrouve pas non plus la le nombre
initiale de mémoire disponible avant lancement.
Je me demande s'il n'y a pas un problème au niveau de
VB.NET .
En faite, je crois peut-être que tu serais mieux de ne pas disposer tes objets à chaque fois puisque tu les utilises avec un timer de maniere répétitive. J'ai l'impression que tu pourrais les garder instancier et seulement ouvir et fermer la connection à chaque fois ainsi que faire un clear sur ton dataset. Je ne suis pas convaincu que ca va régler le problème mais j'ai l'impression que ca peut aider.
David
"E.H" a écrit dans le message de news: 051a01c4f01c$cb91b150$ Merci
Quand je réduis la fenêtre la mémoire diminue mais ensuite elle commence à augmenter.Si je laisse cela fini par saturer l'ordinateur et mon programme se plante.Si je sors du programme je ne retrouve pas non plus la le nombre initiale de mémoire disponible avant lancement. Je me demande s'il n'y a pas un problème au niveau de VB.NET .