Thread
Snippet
using System.Threading;
public class MyThread : IDisposable
{
private bool disposed;
private Thread thread;
public MyThread()
{
this.disposed = false;
this.thread = new Thread(new ThreadStart(this.threadBody));
this.thread.Start();
}
private void threadBody()
{
// この関数の中が新しいスレッドで実行される
// Thread.Abort が呼び出されると、このスレッド内で ThreadAbortException が発生する。
try
{
}
catch (ThreadAbortException ex)
{
// スレッド終了時にはここが呼び出される
// 終了処理をここに書く
return;
}
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (this.disposed)
{
return;
}
this.disposed = true;
if (disposing)
{
try
{
this.thread.Abort();
}
catch (Exception)
{
}
}
}
}
参考資料