İşin aslı MultiThread ise zaten
Access saf bir "çok kanallı çalışma" imkanına sahip değil ve muhtemelen hiç bir zamanda olmayacak. Eğer olacak olursa zaten çok farklı bir kulvara geçmiş olur ki çoğumuzun işine gelmeyecektir.
Acaba yanlışmı biliyorum dedim ve bir test uygulaması hazırladım. Gözümden kaçan bir şey olmuşsa uyarılarınızı bekliyorum.
İki tane liste kutusu var ve hemen altlarında da birer buton var. Her buton For döngüsü ile 1 den başlayarak 5000 e kadar bir döngüye giriyor ve her sayı liste kutusuna ekleniyor. Burada şunu bekliyoruz:
"Birinci liste kutusunda butona basıp 1 den 5000 e kadar olan sayıları listeye ekler iken aynı anda ikinci bir iş yapıp yapmayacağını test ediyoruz. Birinci butona bastıktan bir süre sonra ikinci butona basınca ikinci liste kutusuna sayılar eklenmeye başlamalı ancak birinci liste kutusuna sayı ekleme işlemi yarım kalmamalı."
Testimizi uygulamaya başladık. Birinci kutuya bastık ve sayılar listeye eklenmeye başladı. 5-10 saniye sonra ikinci butona basıyoruz ancak beklentimiz gerçekleşmiyor. Birinci liste kutusuna sayı ekleme olayı sona ermiş olduğunu görüyoruz.
Kodlar içinde DoEvents komutunu kullandık ancak bize sadece programın kilitlenmemesi açısından yardımcı oldu. DoEvents kodlarını kaldırıp testi tekrarladığımızda ise farkı göreceksinizdir.
Yine
Vba ile MultiThread işlemler için
şu yazıdan da faydalanabilirsiniz.
Microsoft Access MultiThread.rar
(Dosya Boyutu: 17,78 KB | İndirme Sayısı: 16)
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için
Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.