

VB6 Da Aynı Anda 2 İşlem Nasıl Yaptırabiliriz
-
arkadaşlar bir sıkıntım var örneğin bir commad ın click eventine 2 komut veriyorum örn:
Label1.Caption="sperm"
Label2.Caption="man"gibi ama önce label1 in işlemi yapılıyor sonra da label2 nin işlemi yapılıyor ben tek tıkla iki veya üç veya dört veya beş veya altı :) işlemi aynı anda yapmak istiyorum bunu nasıl becerebiliriz?
-
imkansız. çünkü program derlenirken satır satır çalışıyo. yukarıdan aşağı. ilk satırda ne varsa önce o çalışır. sonra 2. satır veya nereye dallanacaksa.
böyle bişeyi istemendeki amaç neki? pc'nin hızı hepsi bi anda çalışıyomuş gibi yapıyo zaten
-
ajan1111 bunu yazdı:
-----------------------------imkansız. çünkü program derlenirken satır satır çalışıyo. yukarıdan aşağı. ilk satırda ne varsa önce o çalışır. sonra 2. satır veya nereye dallanacaksa.
böyle bişeyi istemendeki amaç neki? pc'nin hızı hepsi bi anda çalışıyomuş gibi yapıyo zaten
-----------------------------amacım media player nesnesindeki video ve flash player nesnesindeki dosyayı aynı anda oynatmak gibi bişi
-
ikisi zaten aynı anda oluyomuş gibi olur.
Düzenleme.
Aklıma geldi nasıl yapıcagın.
iki timer koy forma sonra;
Private sub command1_click()
timer1.interval = "10000"
timer2.interval = "10000"
timer1.enabled = true
timer2.enabled = true
end sub
Sonra timerlere olayları koyarsın tamam. forma koydugun timerler bastan disabled olsun. -
x3uqm4 bunu yazdı:
-----------------------------ikisi zaten aynı anda oluyomuş gibi olur.
-----------------------------olmuyor valla zabahtan beri oğraşıyom önce media playerdeki dosya oynatılıyor ardından flash dosyasını oynatıyor :S
-
Aslında farkedilemeyecek kadar kısa zamanda yapıyor işlemleri neden lazım oldu merak ettim =)
İki tane timer olsun. Bu timerların intervallarını istediğin gibi ayarla. Mesela 5000 olsun.
Bu timerların birinin Timer şeysisine
label1.caption = "sperm"
diğerinin Timer şeysisine de
label2.caption = "man"
yazarsan form aktif olduktan 5 saniye sonra labeller değişir.
Butona basarak yapmak istiyorsan da şöyle bişey önerebilirim yine timerlarla =)
bir adet label ekle. Bu anahtar labelımız olsun. İstediğin kadar timer ekleyip intervallarını düzenle. intervalları 1 olursa her milisaniye kontrol ederler. yani bir saniyede 1000 kez kontrol edilir bunu önerebilirim.
anahtar label'ı koyduktan sonra timerların intervallarını da ayarladıktan sonra timerlara gir ve
if anahtar.caption="go go go" then
label1.caption="sperm"
end if
diğerine de
if anahtar.caption="go go go" then
label2.caption="man"
end if
yaz. Sanırım kod açık. Bu şekilde timerlar bir label'i kontrol edecek ve eğer orda onay verilmişse işlemi yapacaklar. Sanırım bu şekilde de aynı anda olur. Bunu geliştireiblirsin. En basit örneğe göre verdim. Denemedim ama çalışması gerek =).
-
Ben cevabı yazarken benzer bir öneri gelmiş görmedim pardon.
Projeyi koyma imkanın var mı bir inceleyelim ?
-
ajan1111 bunu yazdı:
-----------------------------
imkansız. çünkü program derlenirken satır satır çalışıyo. yukarıdan aşağı. ilk satırda ne varsa önce o çalışır. sonra 2. satır veya nereye dallanacaksa.
böyle bişeyi istemendeki amaç neki? pc'nin hızı hepsi bi anda çalışıyomuş gibi yapıyo zaten
-----------------------------Alakası yok hocam :)
Multi Processing, Multi Threading diye bişi var..
Tabi Visual Basic'te bu var mıdır bilmiyorum... ama C ve C++ da pek ala yaparsın böyle şeyleri :)
-
DOEVENTS
BİR DÖNGÜDE V.B., SIRADAKİ OLAYLARIN YAPILMASINA İMKAN VERİR.
PROGRAMDA ÇALIŞMASI ÇOK UZUN SÜREN KOD BLOKLARI VARSA KOD BLOĞUNUN ÇALIŞMASI BİTENE KADAR BAŞKA BİR İŞLEMM YAPAMAZSINIZ.
BU TİP İŞLEMLERDE, DOEVENTS KOMUTU, KONTROLÜ WINDOWS'A VEREREK DİĞER BEKLEYEN İŞLEMLERİN YAPILMASINI SAĞLAR.
ÖRNEK
Dim i
for i=1 to 20000
list1.additem i
doevents
nextaradığımı buldum gibi ama tam olarak anlayamadım doevents diye bi dalgametre varmış nasıl kullanıldığına tam bi örnek verebilecek birisi var mı :S bazı sitelerde doevents kullanmak için apilere ihtiyaç var falan diyor şu an pc de vb yüklü değil şirketin makineden bağlanıyorum
-
Yanlız koddaki label isimleri süper :D
-
bişey kafama takıldı. diyelim 1 adet label var
timer 1 de label'i "Osuruk" yaptık
timer 2 de label'i "İshal" yaptık.
ikisininde interval'i eşit. sonuç ne olur :D