Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Xử lý đa luồng? (Heap sỏt)

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    10

    Mặc định Xử lý đa luồng? (Heap sỏt)

    Mình có 1 project thực hiện Heap sort bằng các button nhưng có 1 lỗi không biết nhỏ hay lớn nhưng mình không sửa được: Khi chương trình đang chạy, ta không thể thao tác jì trên form được kể cả thao tác đơn giản là kéo cái form đi chỗ khác...Hình như liên quan đến xử lý đa luồng thì phải?
    Attached Files Attached Files
    =_________=!

  2. #2
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    GoodJob, bài của bạn làm rất tuyệt ^^!
    Mình nghĩ chắc không phải vì nhiều luông mà nó thế đâu ^^!,nhiều luồng thì nó đơ cả máy cơ chứ không đơ mỗi trên Form đâu,mình đoán là do cái luồng sử lý Form của cậu do đang chạy để di chuyển các nút nên nó không thể nhận 1 tác vụ nào khác trên Form,cũng giống như việc cho vòng lặp vô cùng vào trong Button đó,Button sẽ không nhấn được

  3. #3
    Ngày gia nhập
    04 2007
    Bài viết
    134

    Đúng là có vòng lặp trong hàm nút start click (chắc là chờ di chuyển xong).
    Thêm dòng MessageBox.Show("XXX"); vào cuối hàm này là thấy.
    Tui thấy nên dùng thêm 1 thread duy nhất để xử lý tất cả các di chuyển trên form. Rồi dùng event hay timer gì đó để biết khi nào di chuyển xong

  4. #4
    Ngày gia nhập
    10 2008
    Bài viết
    10

    chà nghe đc đó nha ai có giả thuyết nào nữa thì cho mình xin, nghiên cứu hết lun vậy chà chà sắp đin gòi
    =_________=!

  5. #5
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Uhm, Bạn xử lí trong main thread, nếu bây giờ trong khi đang chờ sắp xếp mình chuyển qua cửa sổ khác và chuyển lại thì nó "pen pen pen".

    Những gì xử lí nhanh, hoặc ko xử lí, bạn gom lại trên main thread, những gì xử lí chậm, lâu, bạn tạo 1 thread mới, vứt vào thread đó, như thế sẽ tốt hơn. Cụ thể trong chương trình của bạn, cần phải có 1 thread nữa để xử lí việc sắp xếp.

  6. #6
    Ngày gia nhập
    10 2008
    Bài viết
    10

    Mặc định Xử lý đa luồng? (Heap sỏt)

    bạn có thể hiện thực code giúp mình đc ko?
    =_________=!

  7. #7
    Ngày gia nhập
    10 2008
    Bài viết
    10

    Trích dẫn Nguyên bản được gửi bởi kidkid Xem bài viết
    Uhm, Bạn xử lí trong main thread, nếu bây giờ trong khi đang chờ sắp xếp mình chuyển qua cửa sổ khác và chuyển lại thì nó "pen pen pen".

    Những gì xử lí nhanh, hoặc ko xử lí, bạn gom lại trên main thread, những gì xử lí chậm, lâu, bạn tạo 1 thread mới, vứt vào thread đó, như thế sẽ tốt hơn. Cụ thể trong chương trình của bạn, cần phải có 1 thread nữa để xử lí việc sắp xếp.
    Tạo 1 thread mới như thế nào với chương trình của mình? Có ai giúp dùm ko???
    =_________=!

  8. #8
    Ngày gia nhập
    10 2008
    Bài viết
    10

    Không ai giúp dùm tui hết TT^TT
    làm sao để đưa hàm change_pos(Button a, Button b) qua 1 thread khác vậy?
    trong C++ có hàm CreateThread(...) làm đc còn trong C# thì ...
    =_________=!

  9. #9
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    Không cần tạo Thread gì cả, đơn giản chỉ dùng DoEvent thay cho THread.Sleep.
    Bạn sửa lại như sau:
    1. Add thêm hàm này vào Form1 Class
    Visual C# Code:
    1. static public void mySleep(int ms)
    2. {
    3.     DateTime t = DateTime.Now.AddMilliseconds(ms);
    4.     while (t > DateTime.Now)
    5.     {
    6.         Application.DoEvents();
    7.     }
    8. }

    2. ReplaceAll tất cả những chỗ Thread.Sleep(speed); thành mySleep(speed);

  10. #10
    Ngày gia nhập
    10 2008
    Bài viết
    10

    oh siu tuyệt kỹ để cài lại C# đã mới cài lại Win cảm ơn bạn
    =_________=!

Các đề tài tương tự

  1. Hỏi về lý thuyết Min-Max Heap
    Gửi bởi mikgnort trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 20-12-2011, 09:26 PM
  2. Bài tập giải thuật Kiểm tra xem cây nhị phân có phải là 1 heap hay không?
    Gửi bởi sangle2010 trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 0
    Bài viết cuối: 31-10-2011, 11:44 AM
  3. Sự khác nhau của Heap Size và Array Length của mảng tạo thành Heap
    Gửi bởi cutithongtin trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 05-01-2011, 04:35 PM
  4. Tạo heap từ mảng cho trước như thế nào?
    Gửi bởi buingochuy trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 12-11-2010, 09:34 AM
  5. cấp phát bộ nhớ bên Heap
    Gửi bởi ooze trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 04-03-2008, 07:20 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn