2017-12-12 39 views
0

Heay everyone、
ボタンを押している間何かをしたいのですが、ボタンを実装したいと思います。ボタンが押されている間何かをする

考えられるのは、ボタンがクリックされると(MouseDown)スレッドを開始し、ボタンが離されると停止することです(MouseUp)。
のEventHandler:

this->button18->MouseUp += gcnew System::Windows::Forms::MouseEventHandler(this, &Demo::button18_MouseUp); 
this->button18->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &Demo::button18_MouseDown); 

イベント:

private: System::Void button18_MouseUp(System::Object^ sender, MouseEventArgs^ e) 
{ 
    stop = true; 
    button18_Thread->Join(); 

}//end of button18_MouseUp 

private: System::Void button18_MouseDown(System::Object^ sender, MouseEventArgs^ e) 
{ 
    stop = false; 
    button18_Thread = gcnew Thread(my_move_Thread); 
    button18_Thread->Start(); 
}//end of button18_MouseDown 

スレッドdeclerationと機能:

ThreadStart^ my_move_Thread = gcnew ThreadStart(this, &Demo::move); 
Thread^ button18_Thread; 

void move() 
{ 
    while (!stop) 
    { 
     label17->Text = Convert::ToString(--act_vel); 
    }//end of while 

}//end of move 

プログラムがループで終わるなぜ誰も私を伝えることができますか?

答えて

0

boolean stopとThread-> Join()の代わりに、私は今ではThread-> Abort()を使用しています。
まだスレッド - >結合()がループで終わる理由を知りたいです。

関連する問題