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

Đề tài: Sử dụng Thread trong C#!!!

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    51

    Question Sử dụng Thread trong C#!!!

    Mình lập trình sử dụng lệnh Thread.Sleep(100); trong hàm vẽ của mình để hiển thị từng bước, và dùng trong Form1 thì nó làm Form1 sleep luôn. Ai biết cách nào tách Thread ra mà không làm Form1 sleep không, chỉ có tác dụng trong hàm vẽ của mình thôi?
    Pinging [nguoitoiyeu] with 32bytes of data...
    Request time out...
    Request time out...
    Request time out...
    Ping statistics for [nguoitoiyeu]:
    Packets: Sent =4, Recived =4, Lost =0 (100%)

  2. #2
    Ngày gia nhập
    01 2008
    Bài viết
    148

    Khi bạn vẽ cái gì đó mất nhiều thời gian (như cách bạn vẽ DEMO) thì bạn nên tạo một thread khác để vẽ chú sử dụng chung với Thread Main thì thứ nhất có thể làm cho chương trình của bạn bị Not Responding do khi nó đang vẽ chẳng hạn mà bạn muốn kích hoạt sự kiện gì đó trên form thì sẽ dễ gây ra hiện tượng trên.Thứ 2 khi bạn dùng Thread.Sleep(100) trên Thread Main thì nó sẽ làm thread main sleep đi.vậy nó sẽ đơ đơ chương trình ==> Chính vì vậy bạn nên tạo một thread tách biệt với thread main khi bạn vẽ cái gì đó với thời gian lâu(vi du Demo gi do)Nhưng nếu vẽ với thời gian 1/2 giây hoặc 1 giây thì khỏi phải tạo thread để đỡ tốn chi phí khởi tạo thread và tài nguyên hệ thống
    Chúc bạn thành công

  3. #3
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    cách tạo thread :
    Visual C# Code:
    1. private void ThreadProc()
    2. {
    3.     while (true)
    4.     {
    5.         // làm việc gì đó
    6.         Thread.Sleep(100);
    7.     }
    8. }
    9.  
    10. private void Form1_Load(object sender, EventArgs e)
    11. {
    12.     Thread thread = new Thread(ThreadProc);
    13.     thread.Start();
    14. }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  4. #4
    Ngày gia nhập
    03 2009
    Bài viết
    51

    Cảm ơn bạn rất nhiều!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!111
    Pinging [nguoitoiyeu] with 32bytes of data...
    Request time out...
    Request time out...
    Request time out...
    Ping statistics for [nguoitoiyeu]:
    Packets: Sent =4, Recived =4, Lost =0 (100%)

  5. #5
    Ngày gia nhập
    03 2009
    Bài viết
    27

    //Thêm vào đoạn này nữa để khi bạn đóng form mà Thread chưa chạy xong
    private void Form1_Closing(object sender, EventArgs e)
    {
    thread.Abort();
    }

  6. #6
    Ngày gia nhập
    03 2009
    Bài viết
    51

    Mặc định Sử dụng Thread trong C#!!!

    Trích dẫn Nguyên bản được gửi bởi applecorp Xem bài viết
    //Thêm vào đoạn này nữa để khi bạn đóng form mà Thread chưa chạy xong
    private void Form1_Closing(object sender, EventArgs e)
    {
    thread.Abort();
    }
    Bạn quả thật rất nhiệt tình!!!!!!!!!!!!!!!!
    Pinging [nguoitoiyeu] with 32bytes of data...
    Request time out...
    Request time out...
    Request time out...
    Ping statistics for [nguoitoiyeu]:
    Packets: Sent =4, Recived =4, Lost =0 (100%)

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

    ngoài ra bạn có thể áp dụng thuộc tính IsBackGround = true; để đảm bảo khi ứng dụng tắt thì chương trình của bạn sẽ out ngay nhường lại tài nguyên cho hệ thống.Bạn xem thêm thuộc tính isBackGround của thread nhé.Rất hữu ích đó

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

    Hàm thread.abort() nên hạn chế sử dụng.

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

    Nếu dùng được Timer thì nên áp dụng.Thread bạn phải chú ý bắt lỗi cross của nó nữa!

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

    cross chỉ xảy ra khi debug,còn bạn build ra thì chẳng có gì xảy ra

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

  1. Sự khác nhau giữa thread 6 và thread 7 trong Java?
    Gửi bởi nt.huy91 trong diễn đàn Thắc mắc lập trình Java
    Trả lời: 5
    Bài viết cuối: 26-10-2012, 01:32 PM
  2. Trả lời: 0
    Bài viết cuối: 16-02-2012, 10:37 PM
  3. Hủy Thread khi đang copy file trong thread?
    Gửi bởi khabin trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 6
    Bài viết cuối: 27-01-2012, 09:15 PM
  4. Socket vẫn bị lỗi khi dùng Thread? không thể gán giá trị vào textbox trong Thread ^^!
    Gửi bởi lion080889 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 16-07-2011, 06:35 PM
  5. Thread trong Dialog và Thread trog Tabcontrol ???
    Gửi bởi nam_dkn trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 20-03-2009, 10:43 AM

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