関連記事
- 【#CSharp】C#が2025年「プログラミング言語オブ・ザ・イヤー」獲得 【2026年01月16日(金)】
- なんと!今週の土曜日も仕事してますた.来週の土曜日も仕事臭い.TCPソケット通信をゴリゴリ書いてる 【2025年08月30日(土)】
- 【ChatGPT o4】祝日なのに仕事ーバテすぎー今夜こそ絶命だーモルモルモル 【2025年03月20日(木)】
- 【#CSharp】制御系が動き出したべ 【2025年02月20日(木)】
- 【#CSharp】ひっさしぶりにガッツリなC#案件をやっているぞー 【2025年02月19日(水)】
なにかと,スレッドのサンプルコード,必要なんですわなぁ~
あちこち散らばったプロジェクトから,あ~でもないこ~でもないと,抜き出すのが,だんだん面倒になったんで
スケルトンを書いておきますです
勝手に持っていっちゃってくださいませぇ~~♥
なお,こやつ,インスタンスを作れば,スレッドが作成され
待機状態へ
Start()メソッドで,処理本体が起動しますです…
なお,このサンプルでは,2スレッド起動されます
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace bMountLibrary
{
public class ClassThreadSample
{
#region クラス
public class ThreadJobFixArg : EventArgs
{
private int m_ThreadNo;
private int m_FixCount;
public int ThreadNo { get { return m_ThreadNo;} set { m_ThreadNo = value;}}
public int FixCount { get { return m_FixCount;} set { m_FixCount = value;}}
public ThreadJobFixArg(int tmpNo, int tmpFixCount)
{
m_ThreadNo = tmpNo;
m_FixCount = tmpFixCount;
}
}
public class ThreadLoopEndArg : EventArgs
{
private int m_ThreadNo;
public int ThreadNo { get { return m_ThreadNo;}}
public ThreadLoopEndArg(int tmpNo){ m_ThreadNo = tmpNo;}
}
#endregion
#region イベント
public delegate void OnThreadJobFix(object o, ThreadJobFixArg e);
public delegate void OnThreadLoopEnd(object o, ThreadLoopEndArg e);
public event OnThreadJobFix OnThreadJobFixEvent; //スレッド処理中向けイベント
public event OnThreadLoopEnd OnThreadLoopEndEvent; //スレッドループアウト伝達向けイベント
#endregion
private bool m_ThreadOnFL; //スレッドループを生かしている間はTrue
private bool m_ThreadJob1FL; //スレッド処理を開始する場合はTrue
private bool m_ThreadJob2FL;
private Thread m_Thread1;
private Thread m_Thread2;
//---------------------------------------------
//コンストラクタ
//
//---------------------------------------------
public ClassThreadSample()
{
OnThreadJobFixEvent = null;
OnThreadLoopEndEvent = null;
m_Thread1 = new Thread(new ThreadStart(ThreadMethod1));
m_Thread2 = new Thread(new ThreadStart(ThreadMethod2));
m_Thread1.Name = "サンプルスレッド_Loop1";
m_Thread2.Name = "サンプルスレッド_Loop2";
m_Thread1.Start();
m_Thread2.Start();
}
//---------------------------------------------
//リソースの開放
//
//---------------------------------------------
public void Dispose()
{
#region
m_ThreadOnFL = false;
for(int i = 0; i < 200; i++) //スレッドが死ぬまで最大200ミリ秒待たしてみる
{
if ((m_Thread1 == null) && (m_Thread2 == null))
{
break;
}
Application.DoEvents();
Thread.Sleep(1);
}
#endregion
}
//---------------------------------------------
//スレッド処理の開始
//
//---------------------------------------------
public void Start()
{
#region
m_ThreadJob1FL = true; //スレッド処理を開始するときはTrueにする
m_ThreadJob2FL = true;
#endregion
}
//---------------------------------------------
//スレッドによるデータ再編成処理主処理(1)
//
//---------------------------------------------
private void ThreadMethod1()
{
#region
while (m_ThreadOnFL == true)
{
if (m_ThreadJob1FL == false) //フラグがfalse時は待機させる
{
Thread.Sleep(1);
continue;
}
//------------------------------------------
//ここいらにお好きな処理を書いてくださいませ
//------------------------------------------
m_ThreadJob1FL = false; //処理が終わったら待機動作へもどすとか?
if (OnThreadJobFixEvent != null) //1処理完了したら,イベントを飛ばしてみたり
{
OnThreadJobFixEvent(this, new ThreadJobFixArg(1, 0));
}
}
if (OnThreadLoopEndEvent != null) //スレッドループを抜けたら,イベントを飛ばしてみたり
{
OnThreadLoopEndEvent(this, new ThreadLoopEndArg(1));
}
m_Thread1 = null;
#endregion
}
//---------------------------------------------
//スレッドによるデータ再編成処理主処理(2)
//
//---------------------------------------------
private void ThreadMethod2()
{
#region
while (m_ThreadOnFL == true)
{
if (m_ThreadJob2FL == false)
{
Thread.Sleep(1);
continue;
}
//------------------------------------------
//ここいらにお好きな処理を書いてくださいませ
//------------------------------------------
m_ThreadJob2FL = false; //処理が終わったら待機動作へもどすとか?
if (OnThreadJobFixEvent != null)
{
OnThreadJobFixEvent(this, new ThreadJobFixArg(2, 0));
}
}
if (OnThreadLoopEndEvent != null)
{
OnThreadLoopEndEvent(this, new ThreadLoopEndArg(2));
}
m_Thread2 = null;
#endregion
}
}
}

コメント
【#衆議院選挙2026 】自民 316議席獲得 単独で3分の2超 中道は49議席
【#衆議院選挙2026 】自民単独で過半数大きく上回り300議席に達する可能性
【BW55T】UPSが死んだ...ドロドロドロ😭これは人類滅亡間違いなし!なので発注(爆
広島カープの羽月隆太郎容疑者、「ゾンビたばこ」使用の疑いで逮捕
【#総選挙】衆議院選挙 きょう公示 12日間の選挙戦へ
青森 スノーモービル乗るため入山の約10人と連絡取れず 遭難か
【#不発弾】宮崎市中心部の不発弾 17日に処理 避難指示や交通規制予定(26/1/17)
【総選挙】立民 公明 衆院選に向け新党結成で合意(26/1/15)
【大雪】大雪と雷及び突風に関する全般気象情報 第3号(26/1/1)