Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Tạm dừng và khởi động lại một thread như thế nào?

  1. #1
    Ngày gia nhập
    04 2016
    Bài viết
    2

    Question Tạm dừng và khởi động lại một thread như thế nào?

    Mình đang học về thread và đang làm một phần mềm nhỏ, trong đó người dùng nhấn button1 thì sẽ tạo ra 2 thread. 2 thread này bắt đầu hai phương thức tăng từ 0 đến 10000, hiển thị lên label. Mình muốn khi người dùng nhấn button2 thì thread 2 sẽ được tạm dừng, nhấn thêm lần nữa thì chạy tiếp. Mình cũng đã biết về hai phương thức của là Suspend() và Resume nhưng được khuyên là không nên xài. Vậy phải làm sao và có cách nào để tạm dừng và khởi động lại một thread không? Mong các bạn giúp.

  2. #2
    Ngày gia nhập
    04 2010
    Nơi ở
    Gò Vấp, HCMC
    Bài viết
    263

    Thử giải pháp này xem

    private static EventWaitHandle waitHandle = new ManualResetEvent(initialState: true);

    // Main thread
    public void OnPauseClick(...) {
    waitHandle.Reset();
    }

    public void OnResumeClick(...) {
    waitHandle.Set();
    }

    // Worker thread
    public void DoSth() {
    while (true) {
    // show some random text in a label control (btw. you have to
    // dispatch the action onto the main thread)
    waitHandle.WaitOne(); // waits for the signal to be set
    }
    }
    Hoa Tử Đinh Hương Phụng Vũ Phi Y
    Skype: makemecryhp
    Email: makemecryhp@gmail.com
    Face : fb.com/yescaerosta

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