• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

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

Moderator: tungblt

User avatar
UFO
Thành viên tích cực
Thành viên tích cực
Posts: 133
Joined: Sat 08/06/2013 10:04 am
Has thanked: 19 times
Been thanked: 14 times

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

Postby UFO » Sun 27/05/2018 10:19 pm

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



User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

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

Postby truongphu » Mon 28/05/2018 4:37 pm

UFO wrote: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 wrote: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 wrote: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:

Code: Select all

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

User avatar
UFO
Thành viên tích cực
Thành viên tích cực
Posts: 133
Joined: Sat 08/06/2013 10:04 am
Has thanked: 19 times
Been thanked: 14 times

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

Postby UFO » Tue 29/05/2018 3:06 pm

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.         }
  28.  


Return to “Visual Basic 6 và Visual Basic Script (VB & VBS)”

Who is online

Users browsing this forum: No registered users and 4 guests