Chạy hàm đa luồng có tham số [help]

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Điều hành viên: tungblt

Đăng trả lời
Hình đại diện của thành viên
UFO
Thành viên tích cực
Thành viên tích cực
Bài viết: 133
Ngày tham gia: Thứ 7 08/06/2013 10:04 am
Has thanked: 19 times
Been thanked: 13 times

Chạy hàm đa luồng có tham số [help]

Gửi bài by UFO »

Làm sao để sử dụng hàm RUN trong đa luồng được vậy các bác, nếu chạy thế kia thì khi nào Call Run(Label1, 0) chạy xong nó mới chạy cái thứ 2 :-<

  1. Private Sub Run(lb As Label, i As Long)
  2.     Do While True
  3.         i = i + 1
  4.         lb.Caption = i
  5.  
  6.         Sleep 200
  7.         DoEvents
  8.     Loop
  9. End Sub
  10.  
  11. Private Sub Command1_Click()
  12.     Call Run(Label1, 0) '
  13.     Call Run(Label2, 0)
  14. End Sub
Hình đại diện của thành viên
truongphu
VIP
VIP
Bài viết: 4785
Ngày tham gia: Chủ nhật 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 526 times

Re: Chạy hàm đa luồng có tham số [help]

Gửi bài by truongphu »

UFO đã viết:Private Sub Command1_Click()
Trong Sub hay function, chỉ chạy trên 1 luồng. Các lệnh tuần tự thực hiện
Và thông thường, khi Sub hay function nào đó đang thi hành, ngừng các sub khác
UFO đã viết:Do While True
i = i + 1
Đây là lệnh vô tận (khoảng hơn 2 tỉ) làm sao đến lượt Call Run(Label2)?

UFO đã viết:khi nào Call Run(Label1, 0) chạy xong nó mới chạy cái thứ 2
1- Bạn cho điều kiện vd i=20 thì ngừng:

Mã: Chọn tất cả

Do
...
Loop until i =20
2- Muốn cùng chạy (đa luồng), bạn tham khảo:
http://www.caulacbovb.com/forum/viewtop ... 82#p155082
DCS - Mã nguồn VB6 Multithreading (đa nhiệm cho vb6) - Dark.Cosmos
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
Hình đại diện của thành viên
UFO
Thành viên tích cực
Thành viên tích cực
Bài viết: 133
Ngày tham gia: Thứ 7 08/06/2013 10:04 am
Has thanked: 19 times
Been thanked: 13 times

Re: Chạy hàm đa luồng có tham số [help]

Gửi bài by UFO »

Vâng cảm ơn bác trường phu đã trả lời, e muốn cho nó chạy đa luồng mà ko biết vb6 làm thế nào cả
code bên c# của e, ko biết bên vb6 convert sao nữa bác
  1.         Thread[] threadsArray = new Thread[100];
  2.         public class Users
  3.         {
  4.             public Label lb;
  5.             public void Run()
  6.             {
  7.                 for (int i = 1; i <= 100000; i++)
  8.                 {
  9.                     lb.Text = i.ToString();
  10.                     //Thread.Sleep(100);
  11.                 }
  12.             }
  13.         }
  14.  
  15.         private void button1_Click(object sender, EventArgs e)
  16.         {
  17.             Users user = new Users();
  18.             user.lb = label1;
  19.             threadsArray[1] = new Thread(user.Run);
  20.             threadsArray[1].IsBackground = true;
  21.             threadsArray[1].Start();
  22.            
  23.             user.lb = label2;
  24.             threadsArray[2] = new Thread(user.Run);
  25.             threadsArray[2].IsBackground = true;
  26.             threadsArray[2].Start();
  27.         }
Đăng trả lời

Quay về