private System.Threading.Thread Backup = null;
// 스레드 동기화 및 일시정지, 재시작
private System.Threading.ManualResetEvent _pauseEvent = new System.Threading.ManualResetEvent(false);
private void BTN_START_Click(object sender, EventArgs e)
{
Backup = new System.Threading.Thread(new System.Threading.ThreadStart(Start));
Backup.Name = "BackupFile";
Backup.IsBackground = true;
Backup.Start();
BTN_START.Enabled = false;
BTN_WAIT.Enabled = true;
BTN_STOP.Enabled = true;
}
private void BTN_WAIT_Click(object sender, EventArgs e)
{
if (!IsPause)
{
IsPause = true;
_pauseEvent.Reset();
BTN_WAIT.Image = global::WooriBackup.Properties.Resources.restart;
}
else
{
IsPause = false;
_pauseEvent.Set();
BTN_WAIT.Image = global::WooriBackup.Properties.Resources.wait;
}
}
private void BTN_STOP_Click(object sender, EventArgs e)
{
IsRunning = false;
IsPause = false;
_pauseEvent.Reset();
if (Backup.IsAlive)
Backup.Abort();
BTN_START.Enabled = true;
BTN_WAIT.Enabled = false;
BTN_STOP.Enabled = false;
}
private void Start()
{
IsRunning = true;
IsPause = false;
while(IsRunning)
{
if(IsPause)
continue;
...
}
}
'기본카테고리' 카테고리의 다른 글
[C#]enum에 String을 사용하는 예제 (0) | 2016.10.21 |
---|---|
[C#] 윈폼과 콘솔창을 같이 사용하기 위한 콘솔창 할당하기 (0) | 2016.09.10 |
[C#]엑셀파일을 저장한다. (0) | 2016.07.24 |
[C#] 프로젝트경로 & 솔루션명 구하기 (0) | 2016.07.05 |
[C#] Microsoft Office의 OleDb Provider 문자열을 구한다. (0) | 2015.08.01 |