![]() | XThread Class |
Namespace: Pixoneer.NXDL
public class XThread : IDisposable
The XThread type exposes the following members.
Name | Description | |
---|---|---|
![]() | Priority | Thread의 우선 순위를 설정하거나 얻는다. |
![]() | Terminated | Thread가 종료되었는지 여부를 설정하거나 얻는다. |
Name | Description | |
---|---|---|
![]() | GetPercentRange | 퍼센트의 범위를 얻는다. |
![]() | GetPercentThread | |
![]() | GetThreadID | Thread ID를 얻는다. |
![]() | IsValid | Thread가 유효한지 여부를 체크한다. |
![]() | Process | 쓰레드의 로직이 들어가는 함수로, 상속을 받아 사용자의 로직을 포함한다. |
![]() | Resume | Thread가 멈충상태에 있을때 다시 시작을 수행한다. |
![]() | SendMessageFail | 프로세스가 실패시 이벤트를 발생시키기 위해 이 함수를 호출한다. |
![]() | SendMessagePercent | Percent에 대한 메시지를 전송한다. |
![]() | SendMessageSuccess | 프로세스가 성공시 이벤트를 발생시키기 위해 이 함수를 호출한다. |
![]() | SetPercentRange | 프로세스에서 전송하는 퍼센트의 범위를 설정한다. |
![]() | Terminate | Thread를 종료한다. |
Name | Description | |
---|---|---|
![]() | OnFail | Thread에서 프로세스가 실패한 경우 발생하는 이벤트. |
![]() | OnPercent | Thread에서 프로세스의 퍼센트가 업데이트 되었을때 발생하는 이벤트. |
![]() | OnProcess | Thread에서 프로세스가 진행될 때 발생하는 이벤트. |
![]() | OnSuccess | Thread에서 프로세스가 성공적으로 종료된 경우 발생하는 이벤트. |
public partial class FormThread : Form { public XThread m_Thread; public FormThread() { InitializeComponent(); m_Thread = new XThread(); m_Thread.OnPercent += new XThreadMessagePercent(OnPercentUpdateProgressBar); m_Thread.OnPercent += new XThreadMessagePercent(OnPercentUpdateText); m_Thread.OnSuccess += new XThreadMessageSuccess(OnSuccess); m_Thread.OnProcess += new XThreadProcess(Process0); } private void FormThread_Load(object sender, EventArgs e) { } public void OnPercentUpdateProgressBar(XThread thd, int percent) { if (this.progressBar1.InvokeRequired) { XThreadMessagePercent d = new XThreadMessagePercent(OnPercentUpdateProgressBar); this.Invoke(d, new object[] { thd, percent }); } else { } } public void OnPercentUpdateText(XThread thd, int percent) { } public void OnSuccess(XThread thd) { m_Thread.SendMessagePercent(0); MessageBox.Show("Success"); CloseProgressFormByThd(); m_Thread.Terminated = false; } delegate void delCloseForm(); public void CloseProgressFormByThd() { if (this.InvokeRequired) { delCloseForm d = new delCloseForm(this.Close); this.Invoke(d, new object[] { }); } } public bool Process0(XThread thd) { // Thread process.... return true; } private void btnStop_Click(object sender, EventArgs e) { m_Thread.Terminate(); this.Close(); } }