Hỏi về đa luồng trong pascal

Có một bạn đang hỏi mình về vấn đề này, mình nghĩ cần dùng đa luồng, bạn nào đã từng làm qua rồi có thể chia sẻ hoặc gửi link tham khảo giúp mình với. Cảm ơn các bạn.

“Nếu em muốn dùng vòng lặp repeat để làm chữ chạy và chữ cứ chạy kiểu title đầu chương trình còn các lệnh ở dưới vẫn chạy bình thường thì làm thế nào ạ? tại vì nếu muốn chữ cứ chạy thì chương trình ko chạy tiếp các câu lệnh ở dưới.”

Bạn có thể tham khảo tài liệu của FPC. Có mục programming là hướng dẫn bạn lập trình với FPC. Chương 10 về Thread programming
https://www.freepascal.org/docs-html/prog/progch10.html

Bạn có thể nhảy tới mục 10.2 để đọc nhanh ví dụ và giải thích.

2 Likes

Có 2 cách:

  • Vòng lặp sự kiện, không cần thread gì hết, bạn làm thế nào đó để game chạy 1 routine cách đều 60 lần 1 giây chẳng hạn, mỗi một lần chạy là bạn vẽ lại giao diện, bắt sự kiện bấm phím cũng dùng routine đó luôn; http://wiki.lazarus.freepascal.org/Main_Loop_Hooks
  • Thread thì như trên.

Lưu ý cả 2 con đường trên đều phải phụ thuộc vào API của hệ điều hành (cho dù bạn xài thư viện nào đi nữa).

6 Likes

Các 1 hơi khó vì có thể các chương trình này của bạn ấy có nhập xuất dữ liệu,… hoặc cần lưu trạng thái gì đó. Nên mình nghĩ dùng thread là hợp lý.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?