Timer problem C#
5 отговора
200 прегледа
Timer problem C#
Imam njakakuv problem s izvikvane na forma ot tick event na timer. Zna4i problema po podrobno e takuv:
Imam forma kojato se izvikva ot tick eventa na timer na vseki 1 min primerno, i tazi forma se kazva Add i sluji za dobavjane na fail kum edin imagelist na glavnata forma. ot Add formata imam buton browse koito mi otvarja druga moja forma Select Category i tam ot tree view se selectva categorija (toest directory).
Problema vuznikva kogato ot tick eventhandlera si izvikam Add forma s ShowDialog() pri otvarjane na selectCategory formata izbirane na categorija i sled tova ok mi dava njakva greshka :
System.Runtime.InteropServices.SEHException: External component has thrown an exception.
Tova ne moga da go debugna i si njamam i ideja zashto stava taka.
po princip v Add formata ne izpolzvam nikakvi External componenti. Izpolzvam njakoi v glavnata forma no te njamat vruzka. Edinija e PictureButton a drugija e OfficeMenus.
break-a na VS.NET (zelenija red) mi go dava na Application.Run(); na MainForm
da ne bi da ima problem s izvikvane na forma ot tick eventa ili e neshto drugo.
Ako njakoi e sreshtal podoben problem i znae ot kakvo e shte sum mu blagodaren
Imam forma kojato se izvikva ot tick eventa na timer na vseki 1 min primerno, i tazi forma se kazva Add i sluji za dobavjane na fail kum edin imagelist na glavnata forma. ot Add formata imam buton browse koito mi otvarja druga moja forma Select Category i tam ot tree view se selectva categorija (toest directory).
Problema vuznikva kogato ot tick eventhandlera si izvikam Add forma s ShowDialog() pri otvarjane na selectCategory formata izbirane na categorija i sled tova ok mi dava njakva greshka :
System.Runtime.InteropServices.SEHException: External component has thrown an exception.
Tova ne moga da go debugna i si njamam i ideja zashto stava taka.
po princip v Add formata ne izpolzvam nikakvi External componenti. Izpolzvam njakoi v glavnata forma no te njamat vruzka. Edinija e PictureButton a drugija e OfficeMenus.
break-a na VS.NET (zelenija red) mi go dava na Application.Run(); na MainForm
da ne bi da ima problem s izvikvane na forma ot tick eventa ili e neshto drugo.
Ako njakoi e sreshtal podoben problem i znae ot kakvo e shte sum mu blagodaren
Re: Timer problem C#
Zabravih da pisha 4e kogato si izvikam Add formata s buton ot mainformata si raboti napulno pravilno i bez problem, problema e samo kogato ja vikam prez tick eventhandler-a na timer
Re: Timer problem C#
Ne mi stana mnogo iasno kakvi vyrshish - bez da gledam code mi idvat 2 nesta:
1. Dali ne se opitvash da vdignesh modalel dialog v event hanlera.
2. VS Main menu ->Debug->Exceptions ...->selectirash .NET ... ->Break in debuger.
taka pone ste vidish kyde gyrmi.
1. Dali ne se opitvash da vdignesh modalel dialog v event hanlera.
2. VS Main menu ->Debug->Exceptions ...->selectirash .NET ... ->Break in debuger.
taka pone ste vidish kyde gyrmi.
Re: Timer problem C#
Ami da, modalen dialog se opitvam da vdigna ot event handlera na MainFormata, a SelectCategory pak go vikam s ShowDialog;
Ima li problem 4e vikam modalen dialog ot event handler i zashto.
I zashto mi dava toja zablujdavasht exception.
Ima li problem 4e vikam modalen dialog ot event handler i zashto.
I zashto mi dava toja zablujdavasht exception.
Re: Timer problem C#
Има защото модалния то блокира главната нишка на приложението която си стартирал с Application.Run(), където ти работи и таймера.
Ето ти част от хелпа на System.Windows.Forms.Timer класа
A Timer is used to raise an event at user-defined intervals. This Windows timer is designed for a single-threaded environment where UI threads are used to perform processing. It requires that the user code have a UI message pump available and always operate from the same thread, or marshal the call onto another thread.
Ето ти част от хелпа на System.Windows.Forms.Timer класа
A Timer is used to raise an event at user-defined intervals. This Windows timer is designed for a single-threaded environment where UI threads are used to perform processing. It requires that the user code have a UI message pump available and always operate from the same thread, or marshal the call onto another thread.