Conferința vbstreets - vizualizați subiectul - o captură de ecran a unei greșeli

Timerul execută periodic o astfel de piesă:
Cod: Selectați toate aplicațiile.DoEvents ();


Periodic, apare această eroare:
BufferedGraphicsContext nu poate fi eliminat
cu o indicație pe linia Application.Run (nou Form1 ());

Cum poate fi corectată aceasta?

Eu nu sunt puternic în sharpe, dar mă voi îndrăzni să sugerez că screenShotGraphics.Dispose ar trebui să fie numit după ce operațiunea anterioară se termină. și dacă aș fi în locul tău, aș primul lucru se uita la screenShotGraphics sunt orice metode care intoarce starea ei de a spune acest lucru, otmonitoreny dacă a finalizat tranzacția sau încă ocupat.

Programarea este disciplina aleasă de Dumnezeu! Dacă există Dumnezeu, atunci el a compilat universul, nu altfel.

Dacă codul este executat în Form_Load - agățați-l temporar pe buton și arătați-l.

Denis a scris: Nu sunt puternic în sharpe, dar mă voi îndrăzni să sugerez că screenShotGraphics.Dispoziția ar trebui să fie chemată după terminarea operațiunii anterioare. și dacă aș fi în locul tău, aș primul lucru se uita la screenShotGraphics sunt orice metode care intoarce starea ei de a spune acest lucru, otmonitoreny dacă a finalizat tranzacția sau încă ocupat.

Din metodele pe care nimic nu le-a putut găsi.

Nord777 a scris (a): Dacă codul este executat în Form_Load - agățați-l temporar pe buton și arătați-l.

Codul este executat în cronometru la fiecare 50 ms. Eroarea apare la câteva minute după începerea programului.
De asemenea, am observat în managerul de activități Windows că numărul de memorie utilizat de program crește constant.