Click or drag to resize
XDL

XThread Class

XThread클래스는 Thread에 대한 컨트롤 우선순위, 상태등을 정의한다.
Inheritance Hierarchy
SystemObject
  Pixoneer.NXDLXThread

Namespace:  Pixoneer.NXDL
Assembly:  NXDL (in NXDL.dll) Version: 1.2.817.72
Syntax
C#
public class XThread : IDisposable

The XThread type exposes the following members.

Constructors
  NameDescription
Public methodXThread
XThread에 대한 기본 생성자로서, 멤버들을 초기화 시킨다.
Top
Properties
  NameDescription
Public propertyPriority
Thread의 우선 순위를 설정하거나 얻는다.
Public propertyTerminated
Thread가 종료되었는지 여부를 설정하거나 얻는다.
Top
Methods
  NameDescription
Public methodGetPercentRange
퍼센트의 범위를 얻는다.
Public methodGetPercentThread
Public methodGetThreadID
Thread ID를 얻는다.
Public methodIsValid
Thread가 유효한지 여부를 체크한다.
Public methodProcess
쓰레드의 로직이 들어가는 함수로, 상속을 받아 사용자의 로직을 포함한다.
Public methodResume
Thread가 멈충상태에 있을때 다시 시작을 수행한다.
Public methodSendMessageFail
프로세스가 실패시 이벤트를 발생시키기 위해 이 함수를 호출한다.
Public methodSendMessagePercent
Percent에 대한 메시지를 전송한다.
Public methodSendMessageSuccess
프로세스가 성공시 이벤트를 발생시키기 위해 이 함수를 호출한다.
Public methodSetPercentRange
프로세스에서 전송하는 퍼센트의 범위를 설정한다.
Public methodTerminate
Thread를 종료한다.
Top
Events
  NameDescription
Public eventOnFail
Thread에서 프로세스가 실패한 경우 발생하는 이벤트.
Public eventOnPercent
Thread에서 프로세스의 퍼센트가 업데이트 되었을때 발생하는 이벤트.
Public eventOnProcess
Thread에서 프로세스가 진행될 때 발생하는 이벤트.
Public eventOnSuccess
Thread에서 프로세스가 성공적으로 종료된 경우 발생하는 이벤트.
Top
Examples
This is example #1:
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();
    }
}
See Also