Re: Асинхронные события
От: Rhein  
Дата: 27.09.04 12:59
Оценка: 6 (1)
Здравствуйте, Ed.ward, Вы писали:

EW>Привет All.


EW>К сожалению механизм асинхронного вызова делегатов (BeginInvoke) не позволяет иметь более одного обработчика.

EW>По этому поводу наваял я вот такого вот монстра и требую вашей критики


EW> void Dispose( Boolean Disposing )

EW> {
EW> m_StopThread = true;
EW> if( System.Threading.ThreadState.Suspended == m_LookupThread.ThreadState )
EW> m_LookupThread.Resume();
EW> m_LookupThread.Join();
EW> m_LookupThread = null;

Iskal nuzhnyj mne material i natknulsa na oshibochku v kode:

if( System.Threading.ThreadState.Suspended == m_LookupThread.ThreadState )

rabotaet daleko ne vsegda, t.k. ThreadState mozhet odnovremenno imet' neskol'ko znachenij, naprimer Started und Suspended odnovremwnno. Tut nado bit's oprashivat', naprimer:

if(( System.Threading.ThreadState.Suspended & m_LookupThread.ThreadState ) != 0).

Zhelaju uspehov!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.