※ ChatGPTを利用し、要約された質問です(原文:C#(VS2013)のWorkerスレッド)
C#(VS2013)のWorkerスレッドからmouseClick(...)を割込み起動する方法はありますか?
このQ&Aのポイント
C#(VS2013)のForm上に配置しました、mouseClick(...)を、Workerスレッドから割込み起動する方法はありますか?
mouseClick(...)とWorkerスレッドに関しましては、下記のコードを参照ください。
質問内容は、C#(VS2013)のForm上に配置したmouseClick(...)をWorkerスレッドから割込み起動する方法についてです。詳細なコード例も掲載しています。
Q1) C#(VS2013)のForm上に配置しました、mouseClick(...)を、Workerスレッドから
割込み起動する方法はありますか?
mouseClick(...)とWorkerスレッドに関しましては、下記のコードを参照ください。
==================
private void mouseClick(object sender,MouseEventArgs e) {
//これも動作する、1ピクセル単位で描画
Invalidate(); //Invalidate()は、mouseClickルーチンを抜けてからその効力を発行
}
public class Worker {
// Form1 fm1=new Form1();
int CNT=0;
static System.Diagnostics.Stopwatch sw=new System.Diagnostics.Stopwatch();
public void DoWork() {
while(!_shouldStop) {
//JOB========
while(Form1.flag_DRAWSRT==true && CNT<400) ; //CNT<400必要
//=========================
ここに、mouseClick(...)を起動するコードを書きます(その質問です)
//=========================
//Form1.flag_DRAWSRT=true;
//fm1.pictureBox1_drawA(); Thread.Sleep(100);
//fm1.OnPaintA();
//===========
if(CNT==0) {
sw.Reset();
sw.Start();
}
if(CNT>400) {
_shouldStop=true;
Console.WriteLine("Period[ms]="+sw.Elapsed);
}
CNT++;
}
Console.WriteLine("worker thread: terminating gracefully.");
}
public void RequestStop() {
_shouldStop = true;
}
public void RequestStart() {
_shouldStop = false;
}
// Volatile is used as hint to the compiler that this data
// member will be accessed by multiple threads.
private volatile bool _shouldStop=false;
}//public class Worker {
以上、宜しくお願いします。
お礼
お陰で、下記で出来るようです。 public void mouseMethod() { mouseClick(this,new MouseEventArgs(MouseButtons.Left,1,10,10,0)); }
補足
回答有難うございます。 >publicなメソッドを定義しその中でmouseClick(...)を呼び出すようにして <---貴方の回答の通り、 publicなメソッドを定義しその中でmouseClick(...) を呼出したいと思います。publicなメソッドの中で、mouseClick(...) を呼出す場合、そのコードはどうなりますか。 詰まり、mouseClick(...)の受け側はわかりますが、呼出す側がわかりません。 基本的な事項ですが、出来ればコメント頂けないでしょうか? 以上