30/09/2018, 17:19

Thắc mắc về Thread C#

Mình có một class Car sau đó mình tạo tiến trình để chạy phương thức Run() nhưng
khi nhấn button thì nó đứng luôn mặc dù tiến trình vẫn chạy
Lí do lỗi này là gì vậy các bạn

Đây là code
public partial class Form1 : Form
{

    private Car[] XeDich;
    private Car XeTa;
    private DuongDua duongdua;
    public Form1()
    {
        InitializeComponent();

        duongdua = new DuongDua(this);
        duongdua.init();
        XeTa = duongdua.XeTa;
        XeTa.TocDo(30);
        t1 = new Thread(new ThreadStart(XeTa.Run));
    }

    private Thread t1;

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    
    private void button2_Click(object sender, EventArgs e)
    {
        t1.Abort();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        t1.Start();
    }

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Space)
        {
            t1.Start();
        }
    }

    private void Form1_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Escape)
        {
            t1.Abort();
        }
    }
}

Đây là demo

Phạm Hoàng Tuấn viết 19:19 ngày 30/09/2018

Bạn thử dùng Invoke trong hàm Xeta.Run thử xem

Bài liên quan
0