12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- using System;
- using System.Collections.Generic;
- //using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Collections;
- using System.Windows.Forms;
- namespace FPER
- {
- // 스레드 공용 루틴 // cyim 2015.8.4 수신반을 위한 static 클래스 정리
- public class _Thread
- {
- // 스레드 관리 해쉬테이블
- public Hashtable CreatedThread = new Hashtable();
- // 생성 (파라미터가 없는 타입 : 스레드 실행시에 필요한 데이터가 없다)
- public void Create(string Key, ThreadStart WorkFunction)
- {
- if (CreatedThread.Contains(Key) == true)
- {
- //_Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.Warnning, 250, 150, _Text.OverLapKey, 0);
- ////_Event.DebugView_SendMessage_Write(e.ToString());("thread :" + "이미 키가 중복입니다" + ";" + Key.ToString());
- }
- else
- {
- // 스레드 생성
- Thread WorkingThread = new Thread(new ThreadStart(WorkFunction));
- // 스레드시작
- WorkingThread.Start();
- // 해쉬에 추가
- CreatedThread.Add(Key, WorkingThread);
- }
- }
- // 생성 (파라미터가 있는 타입 : 스레드 실행시에 필요한 데이터가 있다)
- public void Create(string Key, ParameterizedThreadStart WorkFunction, object Data)
- {
- if (CreatedThread.Contains(Key) == true)
- {
- //_Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.Warnning, 250, 150, _Text.OverLapKey, 0);
- ////_Event.DebugView_SendMessage_Write(e.ToString());("thread :" + "이미 키가 중복입니다" + ";" + Key.ToString());
- }
- else
- {
- // 스레드 생성
- Thread WorkingThread = new Thread(new ParameterizedThreadStart(WorkFunction));
- // 스레드시작
- WorkingThread.Start(Data);
- // 해쉬에 추가
- CreatedThread.Add(Key, WorkingThread);
- }
- }
- // 시작
- public void Start(string Key)
- {
- if (CreatedThread.Contains(Key) == true)
- {
- ((Thread)CreatedThread[Key]).Start();
- }
- }
- // 종료
- public void Abort(string Key)
- {
- if (CreatedThread.Contains(Key) == true)
- {
- ((Thread)CreatedThread[Key]).Abort();
- Delete(Key);
- //_Event.DebugView_SendMessage_Write(e.ToString());("스레드 중지!!!!");
- }
- }
- // 삭제
- public void Delete(string Key)
- {
- if (CreatedThread.Contains(Key) == true)
- {
- CreatedThread.Remove(Key);
- }
- }
- }
- }
|