using Shared;
|
using System;
|
using System.Collections.Generic;
|
using System.Text;
|
|
namespace HDL_ON.Stan
|
{
|
/// <summary>
|
/// 线程逻辑(创建这个东西,是为了Log出力)
|
/// </summary>
|
public class HdlThreadLogic
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 线程逻辑(创建这个东西,是为了Log出力)
|
/// </summary>
|
private static HdlThreadLogic m_Current = null;
|
/// <summary>
|
/// 线程逻辑(创建这个东西,是为了Log出力)
|
/// </summary>
|
public static HdlThreadLogic Current
|
{
|
get
|
{
|
if (m_Current == null)
|
{
|
m_Current = new HdlThreadLogic();
|
}
|
return m_Current;
|
}
|
}
|
#endregion
|
|
#region ■ 线程执行___________________________
|
|
/// <summary>
|
/// 子线程执行(创建这个东西,是为了Log出力)
|
/// </summary>
|
public void RunThread(Action action, ShowErrorMode mode = ShowErrorMode.YES)
|
{
|
new System.Threading.Thread(() =>
|
{
|
try
|
{
|
action.Invoke();
|
action = null;
|
}
|
catch (Exception ex)
|
{
|
if (mode == ShowErrorMode.YES)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
//出现未知错误,数据丢失
|
HdlMessageLogic.Current.ShowAppProgramIsError(ex);
|
});
|
}
|
}
|
})
|
{ IsBackground = true }.Start();
|
}
|
|
/// <summary>
|
/// 执行运行子线程里面的主线程(创建这个东西,是为了Log出力)
|
/// </summary>
|
public void RunMainInThread(Action action, ShowErrorMode mode = ShowErrorMode.YES)
|
{
|
new System.Threading.Thread(() =>
|
{
|
Application.RunOnMainThread(() =>
|
{
|
try
|
{
|
action.Invoke();
|
action = null;
|
}
|
catch (Exception ex)
|
{
|
if (mode == ShowErrorMode.YES)
|
{
|
//出现未知错误,数据丢失
|
HdlMessageLogic.Current.ShowAppProgramIsError(ex);
|
}
|
}
|
});
|
|
})
|
{ IsBackground = true }.Start();
|
}
|
|
/// <summary>
|
/// 执行运行于主线程(创建这个东西,是为了Log出力)
|
/// </summary>
|
public void RunMain(Action action, ShowErrorMode mode = ShowErrorMode.YES)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
try
|
{
|
action.Invoke();
|
action = null;
|
}
|
catch (Exception ex)
|
{
|
if (mode == ShowErrorMode.YES)
|
{
|
//出现未知错误,数据丢失
|
HdlMessageLogic.Current.ShowAppProgramIsError(ex);
|
}
|
}
|
});
|
}
|
|
#endregion
|
}
|
}
|